Yayın Tarihi
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
// 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 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 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.