Menu
CoddyTech

DateTime Nesnelerini Değiştirme

Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 50 / 68.

Bir DateTime nesneniz olduğunda, çoğu zaman bunu zamandaki farklı bir anı temsil edecek şekilde değiştirmeniz gerekir. modify() yöntemi, doğal dil ifadelerini kullanarak DateTime nesnenize zaman eklemenize veya nesnenizden zaman çıkarmanıza olanak tanır; böylece tarih hesaplamaları sezgisel ve okunabilir hâle gelir.

modify() yöntemi, strtotime() ile çalışan '+1 day', '-2 weeks' veya 'next Friday' gibi aynı türdeki dizeleri kabul eder. Her seferinde yeni bir nesne oluşturmanın aksine, bu yöntem mevcut DateTime nesnesini doğrudan değiştirir; bu da ardışık tarih işlemleri için verimlidir.

<?php
$date = new DateTime();
echo $date->format('Y-m-d');  // Bugünün tarihi

$date->modify('+1 week');
echo $date->format('Y-m-d');  // Bugünden bir hafta sonrası

$date->modify('-3 days');
echo $date->format('Y-m-d');  // Bugünden 4 gün sonrası
?>

Bu yaklaşım, tarih hesaplamalarında güçlü bir esneklik sağlar. Kodunu açık ve sürdürülebilir tutarken birden fazla değişikliği zincirleme biçimde uygulayabilir veya karmaşık tarih aritmetiği yapmak için '+2 months -1 day' gibi karmaşık ifadeler kullanabilirsin.

challenge icon

Görev

Kolay

İki girdi alacaksınız: Y-m-d H:i:s biçiminde bir tarih dizgesi ve bir değiştirme dizgesi. İlk girdi belirli bir tarih ve saattir (örnek: 2024-03-15 14:30:25), ikinci girdi ise +1 week, -3 days veya +2 months gibi bir değiştirme ifadesidir.

Her iki girdiyi de okuyun, tarih dizgesini kullanarak bir DateTime nesnesi oluşturun, değiştirme ifadesini DateTime nesnesine uygulamak için modify() yöntemini kullanın ve değiştirilen tarihi Y-m-d H:i:s biçiminde yazdırın.

Girdi biçimi:

  • İlk satır: Y-m-d H:i:s biçiminde bir tarih dizgesi (örnek: 2024-03-15 14:30:25)
  • İkinci satır: Bir değiştirme dizgesi (örnek: +1 week veya -3 days veya +2 months)

Beklenen çıktı: Y-m-d H:i:s biçiminde biçimlendirilmiş değiştirilmiş tarih

Kendin dene

<?php
// Tarih dizgesini oku
$dateString = trim(fgets(STDIN));

// Değişiklik dizgesini oku
$modificationString = trim(fgets(STDIN));

// TODO: Kodunu aşağıya yaz
// Bir DateTime nesnesi oluştur, değişikliği uygula ve sonucu biçimlendir


// Değiştirilmiş tarihi çıktı olarak ver
echo $modifiedDate;
?>
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online PHP derleyicisi