PHP konusunda sitede süper bir yazı dizisi paylaşıldığını gördüğümden beridir takipteyim ve uygulamaları da teker teker deneyerek php bilgilerimi tazeliyorum. Bugün aldığım bir hata mesajı ve çözümü konusunda bilgi vermek için ben de bu yazıyı eklemek istedim.
PHP'de tarihsel fark (DateInterval) veri tipinde bir değişkenin değerini yazdırmak istediğinizde doğrudan değişkeni yazdırmak istediğinizde Object of class DateInterval could not be converted to string hatası alıyorsunuz, örneğin aşağıdaki örnekte bu durumu deneyerek görebilirsiniz.
<?php
$tarih1 = new DateTime("2020-12-10");
$tarih2 = new DateTime("2020-10-10");
$fark = date_diff($tarih1, $tarih2);
echo $fark
?>
$fark değişkeni burada DateInterval türünde olduğu için string'e dönüştürerek yazdırmanız gerekiyor. Doğrusu şu şekilde olacak:
<?php
$tarih1 = new DateTime("2020-12-10");
$tarih2 = new DateTime("2020-10-10");
$fark = date_diff($tarih1, $tarih2);
echo $fark->format('%m ay');
?>
Bu şekilde düzenlediğinizde iki tarih arasındaki ay bazındaki farkları görmüş olursunuz ve çıktısı da 2 ay olur.
Referans yazılar için:
bkz: PHP'de timezone kullanarak tarihi ve saati yazdırmak
bkz: PHP'de iki tarih arasındaki gün ve saat farkını bulmak
bkz: Javascript Tarih ve Saat Örnekleri
bkz: PHP'de string'i tarihe dönüştürmek (strtotime fonksiyonu)
bkz: PHP ile bugünün tarihini yazdırmak
bkz: PHP'de tarih karşılaştırması yapmak (önce sonra karşılaştırmaları)