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.
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:sbiçiminde bir tarih dizgesi (örnek:2024-03-15 14:30:25) - İkinci satır: Bir değiştirme dizgesi (örnek:
+1 weekveya-3 daysveya+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;
?>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
1İleri Seviye Fonksiyonlar
Anonim FonksiyonlarClosure'lar ve 'use'Ok Fonksiyonları (Arrow Functions)Geri Çağırma (Callback) Fonksiyonları'call_user_func' KullanımıDeğişken FonksiyonlarReferans ile Değer AktarımıÖz Yinelemeli (Recursive) FonksiyonlarÖzet: Fonksiyon Karması4Çok Boyutlu Diziler
2 Boyutlu Dizi Oluşturma2 Boyutlu Dizi Elemanlarına Erişme2 Boyutlu Dizi Elemanlarını Değiştirmeİç İçe Döngülerle Yineleme2 Boyutlu İlişkisel DizilerÖzet: Basit Izgara Egzersizi7Tarih ve Saatlerle Çalışmak
'date()' Fonksiyonu'time()' ile Unix Zaman DamgalarıDateTime Nesnesine GirişDateTime Nesnelerini BiçimlendirmeDateTime Nesnelerini DeğiştirmeÖzet: Tarih Hesaplamaları2İleri Düzey Dizi İşlemleri
'array_push' ile Ekleme'array_pop' ile Silme'array_unshift' ile Ekleme'array_shift' ile Silmeİndisli Dizileri Birleştirmeİlişkisel Dizileri Birleştirme'array_slice' ile Kesit Alma'in_array' ile Değer Kontrolü'array_search' ile Anahtar AramaÖzet: Çalma Listesi Alıştırması3Dizileri Sıralama
İndisli Dizileri Artan Sırada Sıralamaİndisli Dizileri Azalan Sırada Sıralamaİlişkisel Dizileri Değere Göre Sıralamaİlişkisel Dizileri Anahtara Göre SıralamaDoğal Sıralama (Natural Order)'usort' ile Özel SıralamaÖzet: Liderlik Tablosu SıralamaKendi başına pratik yap: Online PHP derleyicisi