[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 ciągów skróconych nazw miesięcy i dni z angielskich 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 nazwy dnia tygodnia: date('D')
  • Argument dla nazwy miesiąca: 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:

<?php

echo 'Dziś jest ' . date_pl(date('D'));
echo 'Aktualny 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 tablicy z nazwami ponumerować od 1. Gotowa tablica powinna wyglądać jak poniżej:

>?php

$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 klucz tablicy "date" podać aktualny dzień/miesiąc w formie cyfrowej (bez wiodącego zera) jak poniżej:

>?php

$today = date('N'); // aktualny dzień tygodnia w formie cyfrowej
$month = date('n'); // bieżący miesiąc w formie cyfrowej

echo "Dziś jest {$date['days'][$today]}";
echo "Bieżący miesiąc to {$date['months'][$month]}";

Komentarze

Popular

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

[HTML] Jak wyśrodkować tekst?

[PHP|HTML] Odświeżenie strony