PHP Türkçe Tarih Yazdırma Yöntemleri

PHP Türkçe Tarih Yazdırma Yöntemleri

PHP türkçe tarih yazdırma işlemleri ile günlerin ve ayların türkçeleşmiş hallerini gösterebiliriz. PHP tarih saat fonksiyonları kullanılarak yapılan tarih işlemleri sırasında tarih damgasında ingilizce sonuçlar ortaya çıkabilir. Türkçe tarih sonuçları elde edebilmek için birçok yöntem kullanılabilir.

Setlocale ve iconv fonksiyonları kullanılarak strftime fonksiyonu ile PHP türkçe tarih sonuçları hazır olarak üretilebileceği gibi bu hazır çözümlerin bazı sistemlerde sıkıntı çıkartabilme ihtimallerine karşı türkçe tarih sonuçları için PHP’de özel yöntemler de kullanılabilir.

Öncelikle sık kullanılan PHP türkçe tarih yazdırma yöntemini görelim, ardından diğer yöntemlere giriş yapalım.

Strftime() Fonksiyonu ile Türkçe Tarih ve
Türkçe Karakter – 1

Sistemde Türkçe dili tanımlı ise setlocale fonksiyonu ile türkçe dilini kullanacağımızı belirtiyoruz. Sonrasında strftime fonksiyonu ile ay ve gün değerlerini Türkçe olacak şekilde istenilen formatta tarih değerini oluşturuyoruz. Ayrıca iconv fonksiyonu ile latin5 formatını utf-8 formatına dönüştürerek PHP türkçe tarih işlemlerinde ortaya çıkabilecek türkçe karakter sorununu da çözmüş oluyoruz. PHP strftime fonksiyonu kullanımı aşağıdaki gibidir.

setlocale(LC_TIME,'turkish'); //turkceyi sec (sunucuda yüklü olması gerekir)
echo iconv('latin5','utf-8',strftime('%e %B %Y %A %H:%M:%S')); //kodun çalıştığı zamana ait
//19 Şubat 2020 Çarşamba 14:57:22
echo iconv('latin5','utf-8',strftime('%e %B %Y %A')); //kodun çalıştığı zamana ait
//19 Şubat 2020 Çarşamba
echo iconv('latin5','utf-8',strftime(' %d %B %Y %A %H:%M:%S',strtotime('2020-02-19 14:57:22'))); //belirtilen zamana ait
//19 Şubat 2020 Çarşamba 14:57:22

Aşağıdaki tabloda strftime fonksiyonunda kullanılabilecek zaman biçimlendirme karakterleri listelenmektedir. PHP tarih format karakterleri hakkında daha fazla ayrıntı için buraya tıklayın.

Karakter Açıklama Örnek
d Ayın iki haneli gün değeri 01 ile 31 arası
e Ayın tek haneli gün değeri 1 ile 31 arası
B Tanımlı dile göre tam ay isimleri Şubat
b Tanımlı dile göre kısaltılmış ay isimleri Şub
Y 4 haneli yıl değeri 2018
y 2 haneli yıl değeri 18
A Tanımlı dile göre haftanın tam gün isimleri Cuma
a Tanımlı dile göre haftanın yarım gün isimleri Cum
H İki haneli 24 saat biçiminde saat değeri 00 ile 59 arası
M İki haneli dakika değeri 00 ile 59 arası
S İki haneli saniye değeri 00 ile 59 arası
m İki haneli ay değeri 01 ile 12 arası

Date Fonksiyonu ile Türkçe Tarih Çevirme
İşlemi – 2

Türkçe hafta ve ay isimlerinin olduğu 2 tane dizi oluşturuyoruz. Dizideki elemanların anahtarlarını ay ve gün verileriyle alakalı olarak düzenliyoruz. Bulunduğumuz günün haftanın kaçıncı günü olduğunu ve bulunduğumuz ayın yılın kaçıncı ayı olduğu bilgilerini PHP date fonksiyonu ile uygun zaman biçimlendirme karakterleri kullanarak elde ediyoruz. Bu sayısal bilgiler doğrultusunda ilgili dizilerden anahtarları yardımıyla türkçe karşılığı olan verilerin çekilmesi sağlanarak PHP türkçe tarih çevirme işlemi sağlanıyor.

$gun_listesi = array(
    1 => 'Pazartesi',
    2 => 'Salı',
    3 => 'Çarşamba',
    4 => 'Perşembe',
    5 => 'Cuma',
    6 => 'Cumartesi',
    7 => 'Pazar'
);
 
$ay_listesi = array(
    1 => 'Ocak',
    2 => 'Şubat',
    3 => 'Mart',
    4 => 'Nisan',
    5 => 'Mayıs',
    6 => 'Haziran',
    7 => 'Temmuz',
    8 => 'Ağustos',
    9 => 'Eylül',
    10 => 'Ekim',
    11 => 'Kasım',
    12 => 'Aralık'
);

$gun = $gun_listesi[date('N')];
$ay = $ay_listesi[date('n')];

echo date('j ').$ay.date(' Y ').$gun;

Str_replace Fonksiyonu ile Türkçe Tarih Çevirme
İşlemi – 3

Projede 2 tane dizi oluşturulacak. Bir tarafta yıl içerisindeki ayların ve hafta içerisindeki günlerin isimlerinin Türkçe hallerinin olduğu bir dizi, bir de bu verilerin aynı sırada olacak şekilde ingilizce hallerinin olduğu ayrı bir dizi. PHP str_replace fonksiyonu ile ingilizce verilerin olduğu dizide arama yapılarak ingilizce veriye karşılık gelen türkçe veri getirilerek yer değiştirilecek. Böylelikle PHP türkçe tarih saat işlemi uygulanmış olacak.

$ingilizce = array(
	'January',
	'February',
	'March',
	'April',
	'May',
	'Jun',
	'July',
	'August',
	'September',
	'October',
	'November',
	'December',
	'Monday',
	'Tuesday',
	'Wednesday',
	'Thursday',
	'Friday',
	'Saturday',
	'Sunday'
);

$turkce = array(
	'Ocak',
	'Şubat',
	'Mart',
	'Nisan',
	'Mayıs',
	'Haziran',
	'Temmuz',
	'Ağustos',
	'Eylül',
	'Ekim',
	'Kasım',
	'Aralık',
	'Pazartesi',
    'Salı',
    'Çarşamba',
    'Perşembe',
    'Cuma',
    'Cumartesi',
    'Pazar'

);
 
$tarih = str_replace($ingilizce,$turkce,date('d F Y l'));
echo $tarih; //örnek çıktı: 18 Şubat 2018 Pazar
Yorum Yap
0 Yorum yapan