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 nesnesine sahip olduğunuzda, genellikle onu zamanın farklı bir anını temsil edecek şekilde değiştirmeniz gerekir. modify() yöntemi, doğal dil ifadeleri kullanarak DateTime nesnenize zaman eklemenize veya nesnenizden zaman çıkarmanıza olanak tanıyarak tarih hesaplamalarını sezgisel ve okunabilir hale getirir.
modify() metodu, '+1 day', '-2 weeks' veya 'next Friday' gibi strtotime() ile çalışan aynı türdeki dizeleri kabul eder. Her seferinde yeni bir nesne oluşturmanın aksine, bu metot 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ı için size güçlü bir esneklik sağlar. Kodunuzu net ve sürdürülebilir tutarken, gelişmiş tarih aritmetiği gerçekleştirmek için birden fazla değişikliği zincirleyebilir veya '+2 months -1 day' gibi karmaşık ifadeler kullanabilirsiniz.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Görev
Kolayİki girdi alacaksınız: Y-m-d H:i:s formatında bir tarih dizesi ve bir değişiklik dizesi. İlk girdi belirli bir tarih ve saattir (örnek: 2024-03-15 14:30:25) ve ikinci girdi +1 week, -3 days veya +2 months gibi bir değişiklik ifadesidir.
Her iki girdiyi de okuyun, tarih dizesini kullanarak bir DateTime nesnesi oluşturun, değişiklik ifadesini DateTime nesnesine uygulamak için modify() metodunu kullanın ve değiştirilen tarihi Y-m-d H:i:s formatında yazdırın.
Girdi formatı:
- İlk satır:
Y-m-d H:i:sformatında bir tarih dizesi (örnek:2024-03-15 14:30:25) - İkinci satır: Bir değişiklik dizesi (örnek:
+1 weekveya-3 daysveya+2 months)
Beklenen çıktı: Y-m-d H:i:s olarak formatlanmış değiştirilmiş tarih
Kopya kağıdı
modify() yöntemi, doğal dil ifadelerini kullanarak bir DateTime nesnesine zaman eklemenize veya nesneden zaman çıkarmanıza olanak tanır:
<?php
$date = new DateTime();
$date->modify('+1 week'); // Bir hafta ekle
$date->modify('-3 days'); // Üç gün çıkar
$date->modify('+2 months -1 day'); // Karmaşık ifadeler
?>Bu yöntem, mevcut DateTime nesnesini doğrudan değiştirir ve strtotime() ile aynı dize formatlarını kabul eder; örneğin '+1 day', '-2 weeks' veya 'next Friday'.
Kendin dene
<?php
// Tarih dizesini oku
$dateString = trim(fgets(STDIN));
// Değişiklik dizesini oku
$modificationString = trim(fgets(STDIN));
// YAPILACAK: Kodunuzu aşağıya yazın
// Bir DateTime nesnesi oluşturun, değişikliği uygulayın ve sonucu biçimlendirin
// Değiştirilen tarihi yazdır
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ıralama