1970-01-01 ve sonraki tarihler için hesaplama yapar.
<?php class TarihFarki { var $t1=0; var $t2=0; function farkTarih ($tarih1, $tarih2=NULL) { $t1 = strtotime($tarih1); if ($tarih2==NULL) { $t2 = $t1; $t1 = time(); } else $t2 = strtotime($tarih2); return ($t2-$t1)/86400; } function gunEkle ($gun, $format="Y-m-d", $tarih=NULL) { if ($tarih==NULL) { $t1 = time(); } else $t1 = strtotime($tarih); $t2 = $gun * 86400; return date($format,($t2+$t1)); } function gunCikar ($gun, $format="Y-m-d", $tarih=NULL) { return $this->gunEkle(-($gun),$format,$tarih); } } $dt = new TarihFarki; $tarih = $dt->gunEkle(10); echo '10 gün sonra: '.$tarih.'<br>'; $tarih = $dt->gunCikar(10); echo '10 gün önce: '.$tarih.'<br>'; $fark = $dt->farkTarih('2023-05-23'); echo '2023-05-23 kadar '.round($fark).' gün<br>'; $tarih = $dt->gunEkle(10,'Y-m-d','2006-02-24'); echo '2006-02-24 ten 10 gün sonra: '.$tarih.'<br>'; $tarih = $dt->gunCikar(10,'Y-m-d','2006-02-24'); echo '2006-02-24 ten 10 gün önce: '.$tarih.'<br>'; $fark = $dt->farkTarih('2007-02-23','2007-03-09'); echo '2007-02-09 ve 2007-03-23 arası '.$fark.' gün<br>'; $fark = $dt->farkTarih('2006-03-23','2006-02-09'); echo '2006-03-09 arası 2006-02-23 '.$fark.' gün<br>'; ?>
Çıktısı
10 gün sonra: 2018-06-15 10 gün önce: 2018-05-26 2023-05-23 kadar1813 gün 2006-02-24 ten 10 gün sonra: 2006-03-06 2006-02-24 ten 10 gün önce: 2006-02-14 2007-02-09 ve 2007-03-23 arası 14 gün 2006-03-09 arası 2006-02-23 -42 gün