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
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.
Boyut yazmışımı oluşturma zamanı olacaktı
örneğim
13.03.2019 05.30