PHP kullanarak iki tarih arasındaki gün sayısını bulmak nasıl?
Unix zaman damgaları için tarih dönüştürmek, sonra başka birini çıkartmak. Yani bu aralıkta size gün yaklaşık bir miktar vermek için 86400 (günde saniye miktarı) bölün ki, size saniye farkı verecektir.
Lütfen tarihleri formatında iseniz 25.1.2010
, 01/25/2010
veya 2010-01-25
, sen strtotime
işlevini kullanabilirsiniz:
$start = strtotime('2010-01-25');
$end = strtotime('2010-02-20');
$days_between = ceil(abs($end - $start) / 86400);
Kullanımı ceil
sonraki tam güne kadar gün miktarını yuvarlar. Eğer bu iki tarih arasında tam gün miktarda almak istiyorsanız bunun yerine floor
kullanın.
Lütfen tarih unix zaman damgası biçimi zaten iseniz, dönüştürme atlayın ve sadece $days_between
düşeni yapabiliriz. Daha egzotik tarih biçimleri için, bunu doğru almak için bazı özel ayrıştırma yapmak zorunda kalabilirsiniz.
PHP Sürüm yeni tarih / zaman işlevleri aşağıda> 5 farkı almak için ekledi:
$datetime1 = new DateTime("2010-06-20");
$datetime2 = new DateTime("2011-06-22");
$difference = $datetime1->diff($datetime2);
echo 'Difference: '.$difference->y.' years, '
.$difference->m.' months, '
.$difference->d.' days';
print_r($difference);
Sonuç aşağıdaki gibi:
Difference: 1 years, 0 months, 2 days
DateInterval Object
(
[y] => 1
[m] => 0
[d] => 2
[h] => 0
[i] => 0
[s] => 0
[invert] => 0
[days] => 367
)
Umarım yardımcı olur!
Date_diff kullanarak kolay
$from=date_create(date('Y-m-d'));
$to=date_create("2013-03-15");
$diff=date_diff($to,$from);
print_r($diff);
echo $diff->format('%R%a days');
Eğer başlangıç ve bitiş tarihi arasındaki tüm gün yankı istiyorum demek eğer, ben bu ile geldi ..
$startdatum = $_POST['start'];
// starting date
$einddatum = $_POST['eind'];
// end date
$now = strtotime($startdatum);
$your_date = strtotime($einddatum);
$datediff = $your_date - $now;
$number = floor($datediff/(60*60*24));
for($i=0;$i <= $number; $i++)
{
echo date('d-m-Y' ,strtotime("+".$i." day"))."<br>";
}