[PHP] Data po polsku
W języku PHP wyświetlić datę po polsku można na kilka sposobów. W tym artykule przedstawię dwie proste, a zarazem użyteczne metody. Pierwsza z nich będzie wykorzystywała dostępną w PHP funkcję str_replace, druga zaś będzie opierała się tylko na tablicy wielowymiarowej.
Data po polsku z użyciem funkcji str_replace
Pierwszy sposób to typowa podmiana stringów skróconych nazw po angielsku na polskie. Funkcja w przykładzie jako argument przyjmuje nazwę dnia tygodnia lub nazwę miesiąca w formie słownej-skróconej i zamienia ją na pełną nazwę w języku polskim.
- Argument dla nazw dni tygodnia:
date('D')
- Argument dla nazw miesięcy:
date('M')
function date_pl($string)
{
$string = str_replace('Mon', 'poniedziałek', $string);
$string = str_replace('Tue', 'wtorek', $string);
$string = str_replace('Wed', 'środa', $string);
$string = str_replace('Thu', 'czwartek', $string);
$string = str_replace('Fri', 'piątek', $string);
$string = str_replace('Sat', 'sobota', $string);
$string = str_replace('Sun', 'niedziela', $string);
$string = str_replace('Jan', 'styczeń', $string);
$string = str_replace('Feb', 'luty', $string);
$string = str_replace('Mar', 'marzec', $string);
$string = str_replace('Apr', 'kwiecień', $string);
$string = str_replace('May', 'maj', $string);
$string = str_replace('Jun', 'czerwiec', $string);
$string = str_replace('Jul', 'lipiec', $string);
$string = str_replace('Aug', 'sierpień', $string);
$string = str_replace('Sep', 'wrzesień', $string);
$string = str_replace('Oct', 'październik', $string);
$string = str_replace('Nov', 'listopad', $string);
$string = str_replace('Dec', 'grudzień', $string);
return $string;
}
Przykładowe wywołanie funkcji date_pl:
echo 'dzień tygodnia: ' . date_pl(date('D'));
echo 'miesiąc: ' . date_pl(date('M'));
Sposób z użyciem tablicy wielowymiarowej
Kolejnym sposobem na wyświetlenie daty po polsku są tablice. Przykład poniżej wszystko obrazuje. Tworzymy tablicę "date" z indeksami pierwszego poziomu - days oraz months, a następnie przypisujemy im odpowiednio dla danego indeksu nazwy dni tygodnia oraz nazwy miesięcy. Ważne, aby indeksy tablic z nazwami ponumerować od 1, ponieważ automatycznie jak wiadomo będą indeksowane od 0. Całość powinna wyglądać tak:
$date['days'][1] = 'poniedziałek';
$date['days'][2] = 'wtorek';
$date['days'][3] = 'środa';
$date['days'][4] = 'czwartek';
$date['days'][5] = 'piątek';
$date['days'][6] = 'sobota';
$date['days'][7] = 'niedziela';
$date['months'][1] = 'styczeń';
$date['months'][2] = 'luty';
$date['months'][3] = 'marzec';
$date['months'][4] = 'kwiecień';
$date['months'][5] = 'maj';
$date['months'][6] = 'czerwiec';
$date['months'][7] = 'lipiec';
$date['months'][8] = 'sierpień';
$date['months'][9] = 'wrzesień';
$date['months'][10] = 'październik';
$date['months'][11] = 'listopad';
$date['months'][12] = 'grudzień';
Aby wyświetlić aktualną nazwę dnia tygodnia lub nazwę bieżącego miesiąca, należy jako drugi indeks tablicy "date" podać aktualny dzień/miesiąc w formie cyfrowej (bez wiodącego zera):
$today = date('N');
// aktualny dzień tygodnia w formie cyfrowej$month = date('n');
// bieżący miesiąc w formie cyfrowej
echo 'dzień tygodnia: ' . $date['days'][$today] . "\n";
echo 'bieżący miesiąc: ' . $date['months'][$month] . "\n";
Komentarze
Prześlij komentarz
Dzięki za komentarz!