Php Dersleri – Türkçe Tarih

Merhaba arkadaşlar Mobilhanem.com sitemiz için hazırladığımız php derslerimizde bu ders Türkçe Tarih yöntemlerini öğreneceğiz. Türkçe tarih yapmak için bir çok yöntem var ama biz bunlardan ikisini göreceğiz. Zaten geliştirilen diğer yöntemlerde bizim göreceğimiz iki yöntem üzerinden geliştiriliyor. Tarih türkçeleştirme yöntemlerine bakacak olursak:

strftime() Fonksiyonu

strftime() fonksiyonu tarihi yerel dile göre tarih çıktısı almamızı sağlar. İyi güzelde bizim yerel dilimiz ne ?

Yerel dili ayarlamak için setlocale fonksiyonundan yararlanıyoruz.

setlocale(LC_TIME,”tr_TR.UTF-8″);  yerel dili türkçe utf-8 olarak ayarladık.

Strftime fonksiyonu da date fonksiyonu gibi içine d, m, y gibi karakterler alıyor. Bu karakter listesine aşağıdan ulaşabilirsiniz.

Harf Açıklaması Örnek
%e Günü sıfır dolgusuz verir 27
%m İki haneli şeklinde ayı verir 07
%Y Dört haneli şeklinde yılı verir 2013
%H İki haneli ve 24 saat formatında saati verir 19
%M İki haneli şeklinde dakikayı verir 38
%S İki haneli şeklinde saniyeyi verir 59
%A Haftanın gününün adını verir Perşembe
%B Ayın adını verir Ocak

Hemen bir örnek yapacak olursak:

setlocale(LC_TIME,"tr_TR");

echo strftime('%B %Y %A %H:%M:%S');

Bu yöntemi kullanabilmeniz için apache serverınızda türkçe dil paketi yüklü olmalıdır. Aksi takdirde yine ingilizce çıktı alacaksınız. Bu yüzden bu yöntemi tavsiye etmiyorum ama kullanımını yinede bilmenizde fayda var.

Tarihi Türkçeleştirmek Yöntem – 2

Genellikle tarihi türkçeleştirmek için bu yöntemi kullanırız arkadaşlar. Biz henüz fonksiyonları görmediğimiz için bir fonksiyon yazmayacağız ama fonksiyonları gördüğümüzde bu tarih türkçeleştirme işleminin ne kadar mantıklı olduğunu göreceksiniz.

Öncelikle str_replace fonksiyonundan bahsedecek olursak: str_replace fonksiyonu bir stringde istediğimiz bir kısmı değiştirmemize yarar. Kullanımı

str_replace(“eski değer”,”yeni değer”,değişken);

değiştirme işlemini tek bir string için yapabileceğimiz gibi değişmesini istediğimiz kısımları array şeklinde de verebiliriz. Şimdi türkçe tarihimizin kodunu yazacak olursak:

$aylar_TR = array("Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık");
$aylar_EN = array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

echo str_replace($aylar_EN,$aylar_TR,date("d/M/Y"));

Kodumuzu açıklayacak olursak date fonksiyonundaki M değeri bize tarihin ingilizce kısaltılmış halini veriyor. Bizde iki adet dizi oluşturup birine tarihin ingilizce kısa adlarını diğerine ise tarihin türkçe adlarını ekledik. Daha sonra str_replace fonksiyonu ile kısa isimi bulunca türkçe isim ile değiştirerek türkçe tarihimizi elde ettik.

Bunun gibi internetten bir sürü türkçe tarih fonksiyonu bulabilirsiniz arkadaşlar.  Öğrendiğimiz tarih  fonksiyonları ile ilgili bir kaç örnek yapalım ve tarih işlemlerimizi de bitirelim.

Örneğin: 01/01/1995 tarihinden 1 ay 4 gün sonra hangi günmüş öğrenmemiz gerektiğini varsayalım. Hemen koda dökecek olursak öğrendiklerimizle bu işlemi kolayca yapabiliriz.

echo date("D",strtotime("01.01.1995 +1 month +4 day"));

Örneğin: 01.01.1995 tarihinden sonraki ikinci cumartesini bulalım.

$ilkCumartesi =  date("d-m-Y",strtotime(" 01-01-1995 next Saturday  "));
echo date("d/m/Y",strtotime("$ilkCumartesi next Saturday  "));

strtotime fonksiyonunda next yada last anahtar kelimesini bir kere kullanabildiğimiz için bizde ilk cumartesini bir değişkene atayıp ikinci cumartesini de bu tarihten sonraki cumartesi olsun diyerek sonuca ulaştık.

Örneğin: 1 ocak 1970 ten itibaren kaç ay, kaç hafta ve kaç gün geçmiş bunu bulalım. 🙂

$gecenSaniye = time();

$gecenGun = intval($gecenSaniye/(60*60*24));
$gecenHafta = intval($gecenGun/7);
$gecenAy = intval($gecenGun/30); // ayları 30 gün kabul edersek
echo " 01.01.1970 Tarihinden İtibaren Ay Olarak $gecenAy,  Hafta Olarak $gecenHafta, Gün Olarak $gecenGun Vakit Geçmiş. ";

Örneğimiz zaten basit arkadaşlar bunun gibi örnekler yine yapmıştık. Dersimizi burada sonlandırıyorum. Bir sonraki dersimiz olan ve işimizi oldukça kolaylaştıracak olan Php Dersleri – Fonksiyonlar dersimizde görüşmek üzere.

 

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından ve Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

Tüm php dersleri için tıklayınız..

 

 

84

Vehbi Akdoğan

Erzurum Atatürk Üniversitesi Bilgisayar Mühendisliği Mezunu
Web & Android Developer
#erzurumspor

2 Yorum

  • 1.yöntem ile bir dosyanın ne zaman oluştuğunu almayı yapamadım.

    echo strftime(‘%B %Y %A %H:%M:%S’,filectime($dir[$i]));

    mesela şöyle yaptım olmadı fakat 2.yöntemde oluyor

    echo str_replace($aylar_EN,$aylar_TR,date(“d.M.Y H:i:s”,filectime($dir[$i])));

    farkını bir türlü anlayamadım çözemedim birşeyi yanlışmı yapıyorm dize kullanmak istemediğimden 1.yönetmi kullanmak istiyorum fakat sanırım 2.yi kullanmak zorundayım boyutu alabilmek için.

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?