PHP'de türkçe tarih belirtmek istediğimiz zaman setlocale() ve strftime() fonksiyonlarını kullanmaktayız. Bu fonksiyonların kullanıma örnek vericek olursak;
setlocale(LC_TIME, 'tr_TR');echo strftime('%d %B %Y'); // 5 May s 2022
Fakat bu her sunucuda düzgün çalışmayabiliyor. Bazı sunucularda türkçe karakter hatalarına yol açabiliyor. Örneğin yukarıdaki çıktıda gördündüğü gibi. Bu gibi durumlarda iki şey yapılabilir.
Bu durumu iki şekilde çözebiliriz.
1- Çözüm : setlocale() fonksiyonuna ek olarak karakter setinide belirterek bu sorunu çözebiliriz.
setlocale(LC_TIME, 'tr_TR.UTF-8');
2- Çözüm : setlocale() olduğu gibi yazılarak strftime() fonksiyonunu utf8_encode() fonksiyonundan geçirerek çözebiliriz.
setlocale(LC_TIME, 'tr_TR');
echo utf8_encode(strftime('%d %B %Y')); // 5 Mayıs 2022
Karşılaştığım bir sorunun çözümü.