Tarih Farkı Sınıfı

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