PHP’de zaman damgalarıyla çalışmak, özellikle veritabanları veya API’lerle ilgilenirken yaygın bir görevdir. 1 Ocak 1970’ten itibaren geçen saniye sayısını temsil eden zaman damgaları, doğal olarak kullanıcı dostu değildir. Bu makale, bu sayısal zaman damgalarını PHP uygulamalarınızda okunabilir tarih ve saat biçimlerine dönüştürmek için etkili yöntemleri ele almaktadır.
İçerik Tablosu
date()
Fonksiyonunu KullanmaDateTime
Nesnesi ile ÇalışmacreateFromFormat()
Kullanımı- Zaman Bölgelerini İşleme
- Sonuç
date()
Fonksiyonunu Kullanma
date()
fonksiyonu, temel zaman damgası biçimlendirmesi için basit bir yaklaşım sunar. Bir biçimlendirme dizesi ve isteğe bağlı bir zaman damgası (varsayılan olarak geçerli zaman) kabul eder.
<?php
$timestamp = 1678886400; // Örnek zaman damgası
// YYYY-MM-DD biçimine dönüştürme
$date = date("Y-m-d", $timestamp);
echo "Tarih: " . $date . "<br>"; // Çıktı: 2023-03-15
// YYYY-MM-DD HH:MM:SS biçimine dönüştürme
$dateTime = date("Y-m-d H:i:s", $timestamp);
echo "Tarih ve Saat: " . $dateTime . "<br>"; // Çıktı: 2023-03-15 00:00:00
// Özel Biçim
echo "Özel Biçim: ". date("D, M jS, Y", $timestamp); // Çıktı: Çar, Mar 15, 2023
?>
Biçim karakterlerinin tam listesi için PHP dokümanına bakın.
DateTime
Nesnesi ile Çalışma
Daha karmaşık tarih ve saat işlemleri için DateTime
nesnesi daha fazla esneklik sağlar. setTimestamp()
metodu, nesnenin değerini bir zaman damgası kullanarak ayarlamanıza olanak tanır.
<?php
$timestamp = 1678886400;
$dateTime = new DateTime();
$dateTime->setTimestamp($timestamp);
echo "Tarih ve Saat: " . $dateTime->format("Y-m-d H:i:s") . "<br>"; // Çıktı: 2023-03-15 00:00:00
echo "Biçimlendirilmiş Tarih: " . $dateTime->format("l, F jS, Y") . "<br>"; // Çıktı: Çarşamba, Mart 15, 2023
?>
createFromFormat()
Kullanımı
Tarih bilgileriniz Unix zaman damgası biçiminde değilse, DateTime::createFromFormat()
, dizeleri DateTime
nesnelerine ayrıştırmanıza olanak tanır. Bu, harici kaynaklardan alınan tarihlerin işlenmesi için kullanışlıdır.
<?php
$dateString = "Mart 15, 2023";
$dateTime = DateTime::createFromFormat("F j, Y", $dateString);
if ($dateTime !== false) {
echo "Zaman Damgası: " . $dateTime->getTimestamp() . "<br>"; // Çıktı: Unix zaman damgası
echo "Biçimlendirilmiş Tarih: " . $dateTime->format("Y-m-d") . "<br>"; // Çıktı: 2023-03-15
} else {
echo "Geçersiz tarih biçimi.";
}
?>
Zaman Bölgelerini İşleme
Doğru zaman dilimi işleme çok önemlidir. Bir zaman dilimini belirtmek için DateTimeZone
sınıfını kullanın.
<?php
$timestamp = 1678886400;
$timeZone = new DateTimeZone("America/New_York");
$dateTime = new DateTime();
$dateTime->setTimestamp($timestamp);
$dateTime->setTimezone($timeZone);
echo $dateTime->format("Y-m-d H:i:s e"); //Çıktı America/New_York zaman dilimini yansıtacaktır.
?>
Sonuç
PHP, zaman damgalarını okunabilir biçimlere dönüştürmek için çeşitli yaklaşımlar sunar. İhtiyaçlarınıza en uygun yöntemi seçin: basit biçimlendirme için date()
, daha karmaşık senaryolar için DateTime
nesnesi ve standart dışı tarih dizelerini ayrıştırmak için createFromFormat()
. Doğru sonuçlar için zaman dilimlerini doğru şekilde işlediğinizden emin olun.