Yükleniyor

Php ile iki tarih arasındaki farkı almak oldukça basittir. Sadece tarihi unix zaman damgasına çevirmemiz gerekmektedir. Çünkü matematiksel olarak işlem yapacağımız için 29-05-2021 - 25-05-2021 gibi bir ifade söz konusu değildir.

<?php
// Zamanı Türkiye'ye göre ayarladık.
date_default_timezone_set('Europe/Istanbul');

$baslangicTarihi = strtotime("25-05-2021"); 
//baslangicTarihi => o zamana kadar geçen saniyesini buluyoruz.

$bitisTarihi = strtotime("29-05-2021");
//bitisTarihi => o zamana kadar geçen saniyesini buluyoruz.

$fark = ($bitisTarihi - $baslangicTarihi) / 86400;
/*
86400 e bölmemizin sebebi 1 günde 86400 saniye vardır.
Zaten $fark değerine sonucu saniye olarak döndüğü için günü bulmak adına bölüyoruz.
*/

echo "Gün Farkı : " . $fark;
//Çıktı : 4
?>
Php ile iki tarih arasında detaylı farkı bulmak;
<?php
// Zamanı Türkiye'ye göre ayarladık.
date_default_timezone_set('Europe/Istanbul');

$baslangicTarihi = strtotime("25-05-2020 10:50:12"); 
//baslangicTarihi => o zamana kadar geçen saniyesini buluyoruz.

$bitisTarihi = strtotime("29-05-2021 12:30:25");
//bitisTarihi => o zamana kadar geçen saniyesini buluyoruz.

$fark = $bitisTarihi - $baslangicTarihi;
//Aradaki saniye farkını bulduk.

$dakika = $fark / 60;
$saniye_farki = floor($fark - (floor($dakika) * 60));

$saat = $dakika / 60;
$dakika_farki = floor($dakika - (floor($saat) * 60));
 
$gun = $saat / 24;
$saat_farki = floor($saat - (floor($gun) * 24));
 
$yil = floor($gun/365);
$gun_farki = floor($gun - (floor($yil) * 365));
 
echo $yil . ' yıl ';
echo $gun_farki . ' gün ';
echo $saat_farki . ' saat ';
echo $dakika_farki . ' dakika ';
echo $saniye_farki . ' saniye ';
//Çıktı: 1 yıl 4 gün 1 saat 40 dakika 13 saniye
?>

Php ile ay farkı bulma

Php ile yıl, ay ve gün farkını bulmanın başka bir yöntemi;

<?php
$baslangicTarihi = "2019-05-04";
$bitisTarihi = "2021-07-13";

$sonuc = abs(strtotime($bitisTarihi) - strtotime($baslangicTarihi));
//Sonucu saniye olarak bulduk.

$yil = floor($sonuc / (365 *60 *60 *24));
$ay = floor(($sonuc - $yil * 365 *60 *60 *24) / (30 *60 *60 *24));
$gun = floor(($sonuc - $yil * 365 *60 *60 *24 - $ay *30 *60 *60 *24)/ (60 *60 *24));

printf("%d yıl, %d ay, %d gün\n", $yil, $ay, $gun);
//Çıktı: 2 yıl, 2 ay, 11 gün
?>

Php nin kendi fonksiyonu ile tarih farkı bulma

Php nin kendine ait diff() ve new DateTime() fonksiyonları ile de tarih farkını bulabilirsiniz. Ancak bu özelliğin sunucuda aktif olması gerekmektedir. Ama korkmayın %99 'unda aktif oluyor.

<?php
$baslangicTarihi = new DateTime('1996-05-07 16:27:34');
$bitisTarihi = $baslangicTarihi->diff(new DateTime('2021-06-27 24:32:12'));

echo $bitisTarihi->days . ' Toplam Gün Geçmiştir. <br />';

echo $bitisTarihi->y . ' Yıl ';
echo $bitisTarihi->m . ' Ay ';
echo $bitisTarihi->d . ' Gün ';
echo $bitisTarihi->h . ' Saat ';
echo $bitisTarihi->i . ' Dakika ';
echo $bitisTarihi->s . ' Saniye ';
/* Çıktı:
9182 Toplam Gün Geçmiştir.
25 Yıl 1 Ay 20 Gün 8 Saat 4 Dakika 38 Saniye
*/
?>

Unutmayın; bunlar sadece sizlerin daha iyi anlayabilmesi için yazdığımız ve bulduğumuz örneklerdir. Sizler bunları geliştirebilir ve fonksiyon haline getirebilirsiniz.