PHP konusunda özellikle yeni başlayanların en çok sorduğu sorulardan biri nasıl PHP ile Türkçe tarih yazdırabilirim? sorusudur.

1. Adım: Türkçe Gün ve Ay İsimleri
Öncelikle günler ve aylar adında iki değişken (array) yaratalım.
PHP- Kodu:


/**

* Herşeyden Önce Zaman Dilimimizi Tanımlayalım

*/

date_default_timezone_set('Europe/Istanbul');

/**

* Türkçe Gün İsimleri

*/

$gunler = array('Pazar','Pazartesi','Salı','Çarşamba','Perşe mbe','Cuma','Cumartesi');



/**

* Türkçe Ay İsimleri

* $aylar dizisinin (array) ilk anahtar değerini kullanmayacağımız için herhangi bir şey yazmıyoruz.

*/

$aylar = array('','Ocak','Şubat','Mart','Nisan','Mayıs','Ha ziran','Temmuz','Ağustos','Eylül','Ekim','Kasım',' Aralık');



($aylar) dizisinin ilk anahtarını kullanmayacağımız için herhangi bir şey yazmadık. İlk anahtarı kullanmamızın sebebi, anahtar sayısal değerinin 0 olmasıdır. Ayların sayısal değerleride 1 ile 12 arasında değişmesi nedeniyle ($aylar)dizisinin ilk anahtarını kullanmayacağız.

2. Adım: Türkçe Tarihi Yazdıralım
Türkçe gün ve ay isimlerini hazırladığımıza göre tek yapmamız gereken bunu yazdırmak;

PHP- Kodu:


// Bugünün Unix tarih formatında değerini alalım

$tarih = strtotime('today');

// Türkçe Tarihi Yazdıralım. Örnek: 01 Ocak 2000, Cumartesi

echo date('d',$tarih).' '.$aylar[date('n',$tarih)].' '.date('Y',$tarih).', '.$gunler[date('w',$tarih)];



3. Adım: Fonksiyonellik Katalım
Yukarıdaki kod elbette işimizi görüyor. Fakat çok fonksiyonel değil. Yukarıdaki kodlarımızı bir fonksiyon yaratıp, bu fonksiyon içerisine alarak daha da kullanışlı hale getirelim.

PHP- Kodu:


/**

* turkceTarih Fonksiyonu

*

* @PARAMETRELER

* $tarih: Yazıyla bir tarih belirtiniz. İngilizce today, tomorrow gibi direk yazısal olarak belirtebilirsiniz.

* $yazdir: (boolean) true ya da false. Değerinin true olması halinde otomatik olarak yazdırır, false olması halinde string olarak geri döndürür.

*/

function turkceTarih ($tarih,$yazdir = true) {

/**

* Herşeyden Önce Zaman Dilimimizi Tanımlayalım

*/

date_default_timezone_set('Europe/Istanbul');


+++ /**

+++ * Türkçe Gün İsimleri

+++ */

+++ $gunler = array('Pazar','Pazartesi','Salı','Çarşamba','Perşe mbe','Cuma','Cumartesi');


+++ /**

+++ * Türkçe Ay İsimleri

+++ * $aylar dizisinin (array) ilk anahtar değerini kullanmayacağımız için herhangi bir şey yazmıyoruz.

+++ */

+++$aylar = array('','Ocak','Şubat','Mart','Nisan','Mayıs','Ha ziran','Temmuz','Ağustos','Eylül','Ekim','Kasım',' Aralık');

+++ // Bugünün Unix tarih formatında değerini alalım

+++ $tarih = strtotime($tarih);


+++ // Türkçe Tarihi Yazdıralım. Örnek: 01 Ocak 2000, Cumartesi

+++ if ($yazdir) echo date('d',$tarih).' '.$aylar[date('n',$tarih)].' '.date('Y',$tarih).', '.$gunler[date('w',$tarih)];

+++ // Türkçe Tarihi Döndürelim. Örnek: 01 Ocak 2000, Cumartesi

+++ else return date('d',$tarih).' '.$aylar[date('n',$tarih)].' '.date('Y',$tarih).', '.$gunler[date('w',$tarih)];

}



Yukarıdaki kodda neler yaptık diye merak ediyorsanız;

8. satırda $yazdir parametresine bir değer atandığını görüyoruz. Bu değer, herhangi bir değer belirtilmediği sürece kullanılacak varsayılan değerdir;
function turkceTarih ($tarih,$yazdir = true)

22. satırda eğer $yazdir değeri true ise yazdırmasını söyledik;
if ($yazdir) echo date('d',$date).' '.$aylar[date('n',$date)].' '.date('Y',$date).', '.$gunler[date('w',$date)];

24. satırda eğer $yazdir değeri false ise değeri döndürmesini söyledik;
else return date('d',$date).' '.$aylar[date('n',$date)].' '.date('Y',$date).', '.$gunler[date('w',$date)];

Kullanımı

Tarihi direk olarak yazdırmak için;
[PHP]Yukarıdaki kodda neler yaptık diye merak ediyorsanız;

8. satırda $yazdir parametresine bir değer atandığını görüyoruz. Bu değer, herhangi bir değer belirtilmediği sürece kullanılacak varsayılan değerdir;
function turkceTarih ($tarih,$yazdir = true)

22. satırda eğer $yazdir değeri true ise yazdırmasını söyledik;
if ($yazdir) echo date('d',$date).' '.$aylar[date('n',$date)].' '.date('Y',$date).', '.$gunler[date('w',$date)];

24. satırda eğer $yazdir değeri false ise değeri döndürmesini söyledik;
else return date('d',$date).' '.$aylar[date('n',$date)].' '.date('Y',$date).', '.$gunler[date('w',$date)];

Kullanımı

Tarihi direk olarak yazdırmak için;
PHP- Kodu:


// Tarihi PHP ile Türkçe olarak yazdırmak

turkceTarih('18.02.2014');



Yukarıdaki kodda farkettiğiniz gibi $yazdir için herhangi bir değer atamadık. Varsayılan değerini (true) kullanıyoruz.

Tarihi döndürmek için;

PHP- Kodu:


// Türkçe tarihi döndürerek bir değişkene ata

$turkceTarih = turkceTarih('18.02.2014',false);

// Türkçe tarihi yazdır.

echo $turkceTarih;



Yukarıdaki kodda farkettiğiniz gibi $yazdir için bir değer atadık (false). Böylece veriyi yazdırmadan döndürmesini söylemiş olduk.