PHP, tarih ve zaman dizelerini kullanılabilir DateTime
nesnelerine dönüştürmek için çeşitli sağlam yöntemler sunarak hesaplamaları, biçimlendirmeyi ve karşılaştırmaları mümkün kılar. Bu makale, iki temel tekniği ele almaktadır: strtotime()
ve date()
‘i kullanma ve daha güçlü olan DateTime::createFromFormat()
(veya diğer adı date_create_from_format()
)’ı kullanma.
İçerik Tablosu
strtotime()
vedate()
KullanımıDateTime::createFromFormat()
Kullanımı- Sağlam Hata İşleme
- Doğru Yöntemi Seçme
strtotime()
ve date()
Kullanımı
Bu yaklaşım, basit tarih dizesi dönüşümleri için özlü bir çözüm sunar. strtotime()
, bir dizeyi Unix zaman damgasına (1 Ocak 1970’ten itibaren saniye) ayrıştırır ve date()
bu zaman damgasını biçimlendirir. Kullanışlı olsa da, bazı sınırlamaları vardır:
- Belirsizlik: “01/02/2024” gibi tarihler, açık format belirtmeden belirsizdir.
- Sınırlı Hata İşleme: Başarısız olduğunda yalnızca
false
döndürür ve minimum tanılama bilgisi sunar. - Format Kısıtlamaları: Tüm tarih formatlarını tutarlı bir şekilde işlemez.
DateTime::createFromFormat()
Kullanımı
DateTime::createFromFormat()
(veya date_create_from_format()
), üstün kontrol ve hata işleme sağlar. Giriş dizesinin formatını açıkça tanımlayarak belirsizlik ortadan kaldırılır. Ayrıca daha bilgilendirici hata geri bildirimi sunar.
format("Y-m-d") . "n";
echo "Biçimlendirilmiş Tarih ve Zaman: " . $dateTime->format("Y-m-d H:i:s") . "n";
}
$dateTimeString = "2024-01-01 14:30:00";
$dateTimeWithTime = DateTime::createFromFormat("Y-m-d H:i:s", $dateTimeString);
if ($dateTimeWithTime === false) {
echo "Geçersiz tarih/zaman dizisi";
} else {
echo "Biçimlendirilmiş Tarih ve Zaman: " . $dateTimeWithTime->format("Y-m-d H:i:s") . "n";
}
?>
Sağlam Hata İşleme
Her zaman hata işlemeyi ekleyin. Hem strtotime()
hem de DateTime::createFromFormat()
‘ın dönüş değerini kontrol edin. false
ise, hatayı günlüğe kaydedin veya kullanıcıya bilgilendirici geri bildirim sağlayın.
Doğru Yöntemi Seçme
strtotime()
ve date()
çok basit senaryolar için uygun olsa da, özellikle kullanıcı girişi veya karmaşık tarih formatlarıyla uğraşırken çoğu durumda DateTime::createFromFormat()
şiddetle tavsiye edilir. Hassasiyeti, açık format işleme ve üstün hata işleme özelliği, onu daha sağlam ve güvenilir seçenek yapar.