PHP – MySQL Türkçe Tarih Formatı

PHP Script
Veritabanı olarak MySQL kullanan geliştiriciler çoğu zaman tarih konusunda sıkıntı yaşarlar çünkü MySQL’in date alan tipi tarih verilerini “Yıl-Ay-Gün” olarak kaydeder. Türkiye’de ise tarih kullanım formatı “Gün-Ay-Yıl” şeklindedir. Durum böyle olunca bazı geliştiriciler tarih bilgilerini varchar tipinde bir alanda tutmayı tercih edip, birkaç işlemden geçirerek uygun formata dönüştürüyor veya veritabanından veri çekerken MySQL’in yerleşik fonksiyonlarından date_format‘ı kullanmak durumunda kalıyor. İsteyen istediğini kullanmakta özgür ama asıl amacından ziyade gereksiz kod yığını olmaktan başka iş görmeyen fonksiyonların kullanımını şahsen pek önermiyorum. Hülasa, yapılması gereken şey oldukça basit, yıl ve günün yerlerini değiştirmek.

Fonksiyon:

1
2
3
4
5
function tarihDuzenle($tarih){
$tarih=array_reverse(explode('-',$tarih));
$tarih=implode('-',$tarih);
return $tarih;
}

İşleyiş:

  • Fonksiyon aldığı tarih bilgisini “-” (tire) ayracı ile bir güzel böler.
  • Explode fonksiyonu parçalama işleminden sonra ortaya çıkan değerleri dizi olarak dönderir.
  • array_reverse fonksiyonu ise dizideki değerleri tersten sıralar
  • tersten sıralanan dizi elemanlarını bu sefer implode fonksiyonuna “-” (tire) ayracı ile tekrar birleştirir
  • son olarak return ile işlenmiş olan veriyi dönderiyoruz.

Örnek:

1
2
3
4
function tarihDuzenle($tarih){
return implode('-',array_reverse(explode('-',$tarih)));
}
echo tarihDuzenle('2010-05-06');

Çıktı:

1
06-05-2010

Örnek kullanımda fonksiyonu olabildiğince ufalttım, bir yerlere sıkıştırılıp tekrar tekrar kullanılabilir çünkü veritabanından çektiğiniz veriyi fonksiyondan geçirip gösterdiğiniz gibi kullanıcı tarafından Türkçe formatta alacağınız veriyi aynı şekilde fonksiyona geçirip veritabanı formatına uygun hale getirebilirsiniz ve getirmelisiniz de 🙂

Dilerseniz fonksiyona ikinci bir argüman girerek ayracı da kendiniz belirleyebilirsiniz ama sadece göstermek için.
Rastgele 😉

Facebook Yorumları

2 Yorum

  1. özgür

    türkçe tarih formatına kesin çözüm umarım işinize yarar.tek satırda dönüştürebilirsiniz.

    $tarih=”2014-11-27″;
    $trtarih=date(“d-m-Y”,strtotime($tarih));
    çıktısı 27-11-2014
    veya
    $trtarih=date(“d/m/Y”,strtotime($tarih));
    çıktısı 27/11/2014
    $trtarih=date(“d.m.Y”,strtotime($tarih));
    çıktısı 27.11.2014

Uyarı: Yorumlarda link kullanmayınız. Link içeren yorumlar otomatik olarak spam kabul edilmektedir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir