Merhaba arkadaşlar bu makalede sizlere PHP'de Date_diff komutunun nasıl kullanıldığını örneklerle anlatmaya çalışacağım.
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);
?>
$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;
?>
$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.
İlk Yorumu Sen Yap