Ayberk Atasay

ASP, CSS, Internet konuları üzerine paylaşımlar


PHP ile Tarih İşlemleri

Eskiden tarih işlemlerinde Türkçe kullanmak için ayrıca uğraşmamız gerekiyordu ama PHP'nin yeni fonksiyonları ile birlikte güncel PHP kullanan sunucularda bu işlemler çok daha kolaylaştı. Ben yine de sunucunuzun PHP versiyonunun yeterince yeni olmaması veya bir şekilde sorun/hata ile karşılaşmanız ihtimaline karşı eski yöntemi de sizlerle paylaşacağım.

Yeni yöntem ile başlamak istiyorum. PHP kodumuzun en başına yani <?php etiketinden hemen sonra aşağıdaki kodları ekliyoruz. Bu kodlar sitenin PHP'nin kendisini Türkçe'ye hazırlamasını sağlayacak.


setlocale(LC_ALL, 'tr_TR', 'tr', 'turkish');
if(function_exists("date_default_timezone_set")) {
date_default_timezone_set('Europe/Istanbul');
}


Herkesin tercihi farklı olmasına rağmen ben genelde tarih işlemlerinde UNIX TIMESTAMP (UNIX Zaman damgası) kullanmayı tercih ederim çünkü çalışması en kolay o gelir. Öncelikle zaman damgası nedir onu açıklayalım. Unix zaman damgası, Unix Zaman Başlangıcından (1 Ocak 1970 00:00:00 GMT) itibaren geçen zamanın saniye cinsinden değeridir. İçinde bulunulan anın zaman damgasını öğrenmek için:

$timestamp=time();


Zaman damgasının ne olduğunu ve PHP'den nasıl öğrenebileceğimizi gördük. Zaman damgasını veritabanına girilen verilerin arasına katarak daha sonra ne zaman girilmiş olduğunu öğrenmek için kullanabiliriz. Şimdi bunu insanların okuyabileceği şekle nasıl getirebileceğimizi öğrenelim. PHP'de bu iş için birkaç fonksiyon olsa da ben ilk bölümde dil konusunda sıkıntısı olmayan strftime üzerinde duracağım.

Strftime (Diğer parametreler için fonksiyonun adına tıklayın)

strftime("%d %B %Y, %A %H:%M:%S");
strftime("%d %B %Y, %A %H:%M:%S", time());
strftime("%d %B %Y, %A %H:%M:%S", $timestamp);

Üstte verdiğim ilk 2 kod birbirinin tamamen aynısıdır. Eğer fonksiyona ikinci bir parametre vermezseniz time() fonksiyonunu parametre olarak verilmiş gibi kabul ederek işlem yapar. Sondaki fonksiyon ise belli bir zaman damgasını nasıl formata uygun hale getirileceğini gösteriyor. Yukarıdaki fonksiyonların çıktısı 17 Haziran 2009, Çarşamba 22:11:18 şeklinde.

Artık eski versiyonlar için ve hata olması durumunda kullanabileceğiniz koda sıra geldi. Yukarıda vermiş olduğum sayfanın başına eklenmesi gereken kod bu versiyon için de geçerli onu koyduktan sonra devam edebilirsiniz. Date fonksiyonunu kullanarak Türkçe tarih nasıl yapılır aşağıdaki kodu inceleyerek öğrenebilirsiniz.
Date (Diğer parametreler için fonksiyonun adına tıklayın)

function TurkceTarih($timestamp=false) {
if ($timestamp == false) { $timestamp=time(); }
$gunler=array("Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi");
$aylar=array("","Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık");
return date("j ",$timestamp).$aylar[date("n",$timestamp)].date(" Y, ",$timestamp).$gunler[date("w",$timestamp)].date(" H:i:s",$timestamp);
}

Örnek kullanımı:
echo TurkceTarih();

Eğer bir zaman damgası gönderirseniz o zaman damgasının tarihini döndürür aksi halde o anın tarihini döndürür.

PHPÖzgün Sarı17 Haziran 2009, ÇarşambaEkle Bunu
Önceki Kayıt
Sonraki Kayıt
Yorumlar
Henüz yorum yazılmamış.
Yorum Yaz

İsim (*)

e-Posta (*) (Yayımlanmayacak)

URL




Resmi Değiştir
Güvenlik Kodu (Yukarıda gördüğünüz karakterleri yazınız)


Copyright © 2008 ayberk.com | Bu sitenin kodlaması ve teması Ayberk Atasay tarafından hazırlanmıştır. | XHTML 1.0