Data publikacji: 2006-09-29
Autor: Adrian Słowik
Jak napisać przy pomocy PHP, że mamy piątek albo wyświetlić dzień roku? To wszystko jest możliwe, ale troszkę pokomplikowane ze względu na to, że odpowiedzi na nasze pytania wyświetlane są po angielsku. To można poprawić, ale kto zna procedury wywołujące te funkcje?
Poniżej przedstawionych jest sporo funkcji PHP co do ustawień i wyświetlania daty i godziny. Wszystkie te znaczniki wpisujemy do komendy.
<? Echo gmDate("x y z"); ?>gdzie x, y i z oznaczają poniższe parametry. Można je łączyć ja powyżej, lub używać pojedynczo.
a
Wyświetla am lub pm
A
Wyswietla AM lub PM
d
Dwucyfrowy dzień miesiąca z poprzedzającym zerem, tj. 01 do 31
D
Tekstowo dzień tygodnia w postaci trzech liter, na przykład: Fri
F
Miesiąc w pełnej postaci, na przykład: January
h
Godzina w formacie 12-godzinnym, tj. od 01 do 12
H
Godzina w formacie 24-godzinnym, tj. od 00 do 23
g
Godzina w formacie 12-godzinnym bez początkowych zer, tj. od 1 do 12
G
Godzina w formacie 24-godzinnym bez początkowych zer, tj. od 0 do 23
i
Wyświetla minuty od 00 do 59
j
Dzień miesiąca bez początkowych zer, tj. od 1 do 31
l
Dzień tygodnia w pełnej postaci, na przykład: Friday
L
Wskazuje, czy to jest rok przestępny jako 0 lub nie - 1
m
Wyświetla miesiąc, tj. od 01 do 12
n
Wyświetla miesiąc bez początkowych zer, tj. od 1 do 12
M
Miesiąc w skróconej, trzyliterowej postaci, na przykład: Jan
s
Wyświetla sekundy od 00 do 59
S
Przyrostek dla liczebników liczebników w języku angielskim jako dwa znaki, na przykład: th, nd, st
t
Ilość dni w podanym miesiącu, tj. od 28 do 31
T
Ustawienia strefy czasowej na serwerze, na przykład MDT
U
Ilość sekund od początku epoki
w
Pokazuje dzień tygodnia w postaci numerycznej, od 0 (niedziela) do 6 (sobota)
y
Podaje rok w postaci dwucyfrowej, na przykład 02
Y
Podaje rok w postaci czterocyfrowej, na przykład 2002
z
Zwraca dzień w roku, od 0 do 365
Z
Podaje przesunięcie strefy czasowej w sekundach (od -43200 do 43200)
No dobra ale co zrobić teraz z tymi angielskimi miesiącami i dniami? To proste, wrzucamy pod spodem procedurę wyglądającą mniej więcej tak:
<?
$m = gmDate("F");
if ($m = "January") {$m = "Styczeń";}
if ($m = "February") {$m = "Luty";}
if ($m = "March") {$m = "Marzec";}
if ($m = "April") {$m = "Kwiecień";}
if ($m = "May") {$m = "Maj";}
if ($m = "June") {$m = "Czerwiec";}
if ($m = "July") {$m = "Lipiec";}
if ($m = "August") {$m = "Sierpień";}
if ($m = "September") {$m = "Wrzesień";}
if ($m = "October") {$m = "Październik";}
if ($m = "November") {$m = "Listopad";}
if ($m = "December") {$m = "Grudzień";}
echo ($m);
?>Jeśli zależy nam na tych kilku bajtach to możemy napisać i tak:
<?
$m = gmDate("m");
if ($m = "01") {$m = "Styczeń";}
if ($m = "02") {$m = "Luty";}
if ($m = "03") {$m = "Marzec";}
if ($m = "04") {$m = "Kwiecień";}
if ($m = "05") {$m = "Maj";}
if ($m = "06") {$m = "Czerwiec";}
if ($m = "07") {$m = "Lipiec";}
if ($m = "08") {$m = "Sierpień";}
if ($m = "09") {$m = "Wrzesień";}
if ($m = "10") {$m = "Październik";}
if ($m = "11") {$m = "Listopad";}
if ($m = "12") {$m = "Grudzień";}
echo ($m);
?>
Co do dni tygodnia sytuacja jest identyczna:
<?
$d = gmDate("w");
if ($m = "0") {$m = "Niedziela";}
if ($m = "1") {$m = "Poniedziałek";}
if ($m = "2") {$m = "Wtorek";}
if ($m = "3") {$m = "Środa";}
if ($m = "4") {$m = "Czwartek";}
if ($m = "5") {$m = "Piątek";}
if ($m = "6") {$m = "Sobota";}
echo ($d);
?>
UWAGA na kodowanie strony. Dla lepszej czytelności tekstu nie użyłem w artykule znaków kodowych ISO! Oznaczenia parametrów pochodzą z książki "PHP4 od podstaw" wydawanej przez wydawnictwo Helion (
www.helion.pl).