PHP ile iki tarih arasındaki gün farkını bulmanın en kolay yolu PHP nin date_diff fonksiyonunu kullanmak olacaktır.

PHP ile iki tarih arasındaki zaman farkını almak için aşağıdaki kod kümesini inceleyebilirsiniz. Burdan yola çıkarak kendi yazılımınızda kullanabilirsiniz.

$tarih1= new DateTime('2017-06-01');
$tarih2= new DateTime('2017-06-29');
$interval= $tarih1->diff($tarih2);
echo $interval->format('%a gün farkı var.');

 

 

Bu komutun basit örneği ile başlayalım :

<?php
$date1 = date_create("2019-01-15");
$date2 = date_create("2018-12-18");
echo date_diff($date1,$date2);
?>

Burada iki tarih arası farkı bulur ve ekrana basarız.

Bu farkı format ile saat, gün, ay olarak istediğimiz gibi ele alabiliriz.

Biz bir örnekle gün olarak ele alıp + veya – durumuna göre geçti veya kaldıyı hesaplayıp ekrana basalım.

<?php
$bitis = date_create("2019-01-15");
$baslangic = date_create("2011-12-18");
$cikar = date_diff($baslangic,$bitis);
$gun = $cikar->format("%R%a");
if ($gun >= 1) {
    $ek = "gün kaldı";
} else {
    $ek = "gün geçti";
};
echo $gun . " " . $ek;
?>

Bunun sonucu ekrana 36 gün kaldı şeklinde olacaktır. 

Burada formatı istediğimiz formatte ele alabilmek için aşağıdaki tablodan faydalanabilirsiniz.

Karakter Açıklama Örnek değerler
% % iminin kendisi %
Y Başına 0 getirilerek iki haneli yıl 01, 03
y 0 ile öncelenmeksizin yıl 1, 3
M Başına 0 getirilerek iki haneli ay 01, 03, 12
m 0 ile öncelenmeksizin ay 1, 3, 12
D Başına 0 getirilerek iki haneli ayın günü 01, 03, 31
d 0 ile öncelenmeksizin ayın günü 1, 3, 31
a DateTime::diff()’in sonucu olarak toplam gün sayısı, aksi takdirde (unknown) 4, 18, 8123
H Başına 0 getirilerek iki haneli saat 01, 03, 23
h 0 ile öncelenmeksizin saat 1, 3, 23
I Başına 0 getirilerek iki haneli dakika 01, 03, 59
i 0 ile öncelenmeksizin dakika 1, 3, 59
S Başına 0 getirilerek iki haneli saniye 01, 03, 57
s 0 ile öncelenmeksizin saniye 1, 3, 57
F Baştan 0 ile doldurulmuş en az 6 hanelik sayısal microsaniye. 007701, 052738, 428291
f Sayısal olarak mikrosaniye 7701, 52738, 428291
R Negatifse ““, pozitifse “+” imi , +
r Negatifse ““, pozitifse boş dizge ,

Umarım faydalı bir makale olmuştur.