[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

Popular

[HTML] Jak wstawić obrazek?

[C++] Jak obliczyć pole i obwód trapezu?

[JavaScript|Node.js] Generowanie kodów QR w Node.js z użyciem biblioteki qrcode