PHP ile Tarih Islemleri
Eskiden tarih islemlerinde Turkce kullanmak icin ayrica ugrasmamiz gerekiyordu ama PHP'nin yeni fonksiyonlari ile birlikte guncel PHP kullanan sunucularda bu islemler cok daha kolaylasti. Ben yine de sunucunuzun PHP versiyonunun yeterince yeni olmamasi veya bir sekilde sorun/hata ile karsilasmaniz ihtimaline karsi eski yontemi de sizlerle paylasacagim.

Yeni yontem ile baslamak istiyorum. PHP kodumuzun en basina yani <?php etiketinden hemen sonra asagidaki kodlari ekliyoruz. Bu kodlar sitenin PHP'nin kendisini Turkce'ye hazirlamasini saglayacak.

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


Herkesin tercihi farkli olmasina ragmen ben genelde tarih islemlerinde UNIX TIMESTAMP (UNIX Zaman damgasi) kullanmayi tercih ederim cunku calismasi en kolay o gelir. oncelikle zaman damgasi nedir onu aciklayalim. Unix zaman damgasi, Unix Zaman Baslangicindan (1 Ocak 1970 00:00:00 GMT) itibaren gecen zamanin saniye cinsinden degeridir. Icinde bulunulan anin zaman damgasini ogrenmek icin:

$timestamp=time();


Zaman damgasinin ne oldugunu ve PHP'den nasil ogrenebilecegimizi gorduk. Zaman damgasini veritabanina girilen verilerin arasina katarak daha sonra ne zaman girilmis oldugunu ogrenmek icin kullanabiliriz. Simdi bunu insanlarin okuyabilecegi sekle nasil getirebilecegimizi ogrenelim. PHP'de bu is icin birkac fonksiyon olsa da ben ilk bolumde dil konusunda sikintisi olmayan strftime uzerinde duracagim.

Strftime (Diger parametreler icin fonksiyonun adina tiklayin)

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);

Ustte verdigim ilk 2 kod birbirinin tamamen aynisidir. Eger fonksiyona ikinci bir parametre vermezseniz time() fonksiyonunu parametre olarak verilmis gibi kabul ederek islem yapar. Sondaki fonksiyon ise belli bir zaman damgasini nasil formata uygun hale getirilecegini gosteriyor. Yukaridaki fonksiyonlarin ciktisi 17 Haziran 2009, Carsamba 22:11:18 seklinde.

Artik eski versiyonlar icin ve hata olmasi durumunda kullanabileceginiz koda sira geldi. Yukarida vermis oldugum sayfanin basina eklenmesi gereken kod bu versiyon icin de gecerli onu koyduktan sonra devam edebilirsiniz. Date fonksiyonunu kullanarak Turkce tarih nasil yapilir asagidaki kodu inceleyerek ogrenebilirsiniz.
Date (Diger parametreler icin fonksiyonun adina tiklayin)

function TurkceTarih($timestamp=false) {
if ($timestamp == false) { $timestamp=time(); }
$gunler=array("Pazar","Pazartesi","Sali","Carsamba","Persembe","Cuma","Cumartesi");
$aylar=array("","Ocak","Subat","Mart","Nisan","Mayis","Haziran","Temmuz","Agustos","Eylul","Ekim","Kasim","Aralik");
return date("j ",$timestamp).$aylar[date("n",$timestamp)].date(" Y, ",$timestamp).$gunler[date("w",$timestamp)].date(" H:i:s",$timestamp);
}

ornek kullanimi:
echo TurkceTarih();

Eger bir zaman damgasi gonderirseniz o zaman damgasinin tarihini dondurur aksi halde o anin tarihini dondurur.
June 17, 2009
Ozgun Sari
PHP
2 yorum