Jedną z bardziej irytujących mnie rzeczy, jest niestosowanie się do regionalnych ustawień dotyczących dat, liczb itd.
Samowolka występuje w zasadzie wszędzie, od instytucji finansowych jak banki, po wszelkiego rodzaju urzędy.
Polski format daty określa norma PN-EN 28601 (ISO 8601) i większość krajów Europy stosuje się do tego formatu, czyli DMY (dzień, miesiąc, rok).
Przykład 1
Formatowanie daty w MySQL:
SELECT DATE_FORMAT(NOW(), GET_FORMAT(DATE, 'EUR'))
Wynik:
04.06.2014
Przykład 2
Formatowanie daty w MySQL – wersja 2:
SELECT DATE_FORMAT(NOW(), '%d.%m.%Y')
Wynik:
04.06.2014
Celowo nie poruszam tutaj zasadności formatowania daty za pomocą SZBD MySQL.
Wszystko zależy od tego, czy realizujesz projekt międzynarodowy, gdzie stosowane są rożne strefy czasowe i formaty dat.
Przykład 3
Formatowanie daty w PHP:
echo date('d.m.Y');
Przykład 4
Formatowanie daty MySQL w PHP:
$mysql_date = ('2014-06-04 12:00:00'); echo date('d.m.Y', strtotime($mysql_date));
Przykład 5
Przykład trochę szybszy od poprzedniego, który unika podwójnego formatowania:
$mysql_date = 1401876000; // SELECT UNIX_TIMESTAMP('2014-06-04 12:00:00'); echo date('d.m.Y', $mysql_date);
Przykład 6
Przykład ten wykorzystuje funkcję setlocale() do zmiany ustawień regionalnych.
Aktualne ustawienia otrzymamy przez wywołanie:
echo setlocale(LC_TIME, 0);
Wynik:
Home.pl | Nazwa.pl |
---|---|
C | pl_PL |
Ustawienie polskiego języka i kodowania znaków:
setlocale(LC_TIME, 'pl_PL.UTF-8');
W zależności od systemu, kody języków mogą się różnić, dlatego zazwyczaj podajemy kilka opcjonalnych argumentów, np.:
setlocale(LC_TIME, 'pl', 'pl_PL', 'polish');
Od tej chwili możemy korzystać z funkcji strftime(), która uzależnia wynik swojego działania od ustawień regionalnych.
Format | Home.pl | Nazwa.pl |
---|---|---|
strftime(’%c’) – preferowana reprezentacja daty i czasu zgodnie z lokalizacją | śro, 4 cze 2014, 19:56:35 | śro 04 cze 2014 19:56:09 CEST |
strftime(’%x’) – preferowana reprezentacja daty, zgodnie z lokalizacją, bez czasu | 04.06.2014 | 2014-06-04 |
W przypadku Nazwa.pl mamy pierwszy ZONK.
Nie zawsze ustawienia serwera są poprawne i nie zawsze można na nich polegać.
Źródło zdjęcia: https://www.facebook.com/skladkizus