Bir önceki yazımda PHP’de uzun tarih yazdırmayı anlatmıştım; ama bu durum sadece İngilizce için geçerli. Peki diğer diller için ne yapabiliriz ? Ya da sadece Türkçe’ye özgü böyle bir şey hazırlayabilir miyiz? 2 sorunun cevabı da evet.
- Türkçe ya da başka dillerde tarihi uzun formatta yazdırma:
setlocale(LC_TIME, "turkish"); //başka bir dil içinse burada belirteceksin.
setlocale(LC_ALL,'turkish'); //başka bir dil içinse burada belirteceksin.
echo iconv('latin5','utf-8',strftime(' %d %B %Y %A ',strtotime('2017-08-15 23:12:10')));
//çıktı: 15 Ağustos 2017 Salı
echo iconv('latin5','utf-8',strftime(' %d %B %Y %A %H:%M:%S ',strtotime('2017-08-15 23:12:10')));
//çıktı: 15 Ağustos 2017 Salı 23:12:10
Halen olmadıysa sunucuda Türkçe dil paketi kurulu değildir. Bunu öğrenmek için terminal ile sunucunuza bağlanın ve:
locale -a
Eğer orada tr_TR.utf8 yada turkish vs. gibi şeyler göremezseniz, sunucuya Türkçe dil paketini bizim yüklememiz gerek. Bunun için:
sudo apt-get install language-pack-tr
yazarak Türkçe dil paketini yükleyelim. Sonra sunucuya restart atmayı unutmayın ki aktif hale geçsin. Bunun için -ben php 7.1 kullanıyorum. fpm aktif- Bu yüzden şöyle restart atıyorum:
sudo service php7.1-fpm restart
Eğer VPS üzerinde WHM CPANEL varsa, oradan da restart atabilirsiniz. Ya da başka yollarla…
- Sadece Türkçe için bir çözüm üretelim:
Bu arada Yunus Başşahan’a yardımı için teşekkürler.
function turkcetarih_formati($format, $datetime = 'now'){
$z = date("$format", strtotime($datetime));
$gun_dizi = array(
'Monday' => 'Pazartesi',
'Tuesday' => 'Salı',
'Wednesday' => 'Çarşamba',
'Thursday' => 'Perşembe',
'Friday' => 'Cuma',
'Saturday' => 'Cumartesi',
'Sunday' => 'Pazar',
'January' => 'Ocak',
'February' => 'Şubat',
'March' => 'Mart',
'April' => 'Nisan',
'May' => 'Mayıs',
'June' => 'Haziran',
'July' => 'Temmuz',
'August' => 'Ağustos',
'September' => 'Eylül',
'October' => 'Ekim',
'November' => 'Kasım',
'December' => 'Aralık',
'Mon' => 'Pts',
'Tue' => 'Sal',
'Wed' => 'Çar',
'Thu' => 'Per',
'Fri' => 'Cum',
'Sat' => 'Cts',
'Sun' => 'Paz',
'Jan' => 'Oca',
'Feb' => 'Şub',
'Mar' => 'Mar',
'Apr' => 'Nis',
'Jun' => 'Haz',
'Jul' => 'Tem',
'Aug' => 'Ağu',
'Sep' => 'Eyl',
'Oct' => 'Eki',
'Nov' => 'Kas',
'Dec' => 'Ara',
);
foreach($gun_dizi as $en => $tr){
$z = str_replace($en, $tr, $z);
}
if(strpos($z, 'Mayıs') !== false && strpos($format, 'F') === false) $z = str_replace('Mayıs', 'May', $z);
return $z;
}
Kullanımı:
<?php
echo turkcetarih_formati('j F Y','2017-08-15'); //Çıktı: 15 Ağustos 2017
echo turkcetarih_formati('j F Y , l','2017-08-15'); //Çıktı: 15 Ağustos 2017 , Salı
?>
Etiketler: