İki tarih arasındaki gün sayısını bulma

8 Cevap

PHP kullanarak iki tarih arasındaki gün sayısını bulmak nasıl?

8 Cevap

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.

Eğer PHP 5.3 > kullanıyorsanız, bu kadar farkı hesaplanması en doğru yoldur:

$date1 = new DateTime("2010-07-06");
$date2 = new DateTime("2010-07-09");

$diff = $date2->diff($date1)->format("%a");

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!

Eğer saniye (IE unix zaman damgası) olarak kez varsa, o zaman sadece defa çıkarma ve 86400 (günde saniye) ile bölebilirsiniz

Bu :) Kullanılmış

$days = (strtotime($endDate) - strtotime($startDate)) / (60 * 60 * 24);
print $days;

Şimdi çalışıyor

$datediff = floor(strtotime($date1)/(60*60*24)) - floor(strtotime($date2)/(60*60*24));

ve gerekirse:

$datediff=abs($datediff);

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>"; }