Opis
string
date
( string format [, int znacznik_czasu])
Zwraca
datę
sformatowaną
według
szablonu
podanego
w
argumencie
format
.
Żądana
data
określona
jest
w
argumencie
znacznik_czasu
,
a
w
przypadku
jego
braku
pobierany
jest
aktualny
czas
.
Notatka
:
Poprawny
zakres
znacznika
czasu
to
zwykle
od
piątku
,
13
grudnia
1901 20:45:54
GMT
(
czasu
Greenwich
)
do
wtorku
,
19
stycznia
2038 03:14:07
GMT
.
(Wartości
te
odpowiadają
minimalnej
i
maksymalnej
wartości
32-bitowej
liczbie
całkowitej
ze
znakiem
)
.
W
systemie
Windows
zakres
ten
jest
bardziej
ograniczony
i
zawiera
się
w
przedziale
01-01-1970
do
19-01-2038
.
Wygenerowanie
znacznika
czasu
z
daty
zapisanej
jako
łańcuch
znaków
umożliwia
funkcja
strtotime(
)
.
Również
niektóre
systemy
baz
danych
mają
funkcje
konwersji
ich
formatów
daty
w
uniksowy
znacznik
czasu
(
jak
np
.
funkcja
UNIX_TIMESTAMP
w
MySQL-u
)
.
Poniższych
znaków
używa
się
w
szablonie
formatującym
datę
:
-
a
-
"
am
"
lub
"pm
"
-
A
-
"
AM
"
lub
"PM
"
-
B
-
Czas
internetowy
Swatcha
-
d
-
dzień
miesiąca
,
2
cyfry
z
zerem
na
początku
;
tzn
.
od
"01
"
do
"31
"
-
D
-
dzień
tygodnia
,
tekst
,
3
litery
;
n.p
.
"Fri
"
-
F
-
miesiąc
,
tekst
,
pełna
nazwa
;
n.p
.
"January
"
-
g
-
godzina
,
format
12-godzinny
bez
zera
na
początku
;
tzn
.
od
"1
"
do
"12
"
-
G
-
godzina
,
format
24-godzinny
bez
zera
na
początku
;
tzn
.
od
"0
"
do
"23
"
-
h
-
godzina
,
format
12-godzinny
z
zerem
na
początku
;
tzn
.
od
"01
"
do
"12
"
-
H
-
godzina
,
format
24-godzinny
z
zerem
na
początku
;
tzn
.
od
"00
"
do
"23
"
-
i
-
minuty
;
tzn
.
od
"00
"
do
"59
"
-
I
(
duża
litera
i
)
-
"1
"
jeśli
czas
oszczędzania
światła
słonecznego
(w
Polsce
-
czas
letni)
,
"0
"
jeśli
czas
standardowy
(w
Polsce
-
zimowy
)
-
j
-
dzień
miesiąca
bez
zera
na
początku
;
tzn
.
od
"1
"
do
"31
"
-
l
(
mała
litera
'L'
)
-
dzień
tygodnia
,
tekst
,
pełna
nazwa
;
n.p
.
"Friday
"
-
L
-
"
1
"
jeśli
rok
przestępny
,
"0
"
w
przeciwnym
razie
-
m
-
miesiąc
;
tzn
.
"01
"
to
"12
"
-
M
-
miesiąc
,
tekst
,
3
litery
;
n.p
.
"Jan
"
-
n
-
miesiąc
bez
zera
na
początku
;
tzn
.
"1
"
to
"12
"
-
O
-
różnica
w
stosunku
do
czasu
Greenwich
;
n.p
.
"+0200
"
-
r
-
data
sformatowana
według
RFC
822
;
n.p
.
"Thu
,
21
Dec
2000 16:01:07
+0200
"
(dodane
w
PHP
4.0.4
)
-
s
-
sekundy
;
i.e
.
"00
"
to
"59
"
-
S
-
standardowy
angielski
sufiks
liczebnika
porządkowego
,
2
litery
;
tzn
.
"st"
,
"nd"
,
"rd
"
lub
"th
"
-
t
-
liczba
dni
w
danym
miesiącu
;
tzn
.
od
"28
"
do
"31
"
-
T
-
strefa
czasowa
ustawiona
na
tej
maszynie
;
n.p
.
"EST
"
lub
"MDT
"
-
U
-
liczba
sekund
od
uniksowej
Epoki
(
1
stycznia
1970 00:00:00
GMT
)
-
w
-
dzień
tygodnia
,
liczbowy
,
tzn
.
od
"
0
"
(Niedziela
)
do
"6
"
(Sobota
)
-
W
-
numer
tygodnia
w
roku
według
ISO-8601
,
tydzień
zaczyna
się
w
poniedziałek
(
dodane
w
PHP
4.1.0
)
-
Y
-
rok
,
4
liczby
;
n.p
.
"1999
"
-
y
-
rok
,
2
liczby
;
n.p
.
"99
"
-
z
-
dzień
roku
;
tzn
.
od
"0
"
do
"365
"
-
Z
-
ofset
strefy
czasowej
w
sekundach
(
tzn
.
pomiędzy
"-43200
"
a
"43200"
)
.
Ofset
dla
stref
czasowych
na
zachód
od
UTC
(
południka
zero
)
jest
zawsze
ujemny
a
dla
tych
na
wschód
od
UTC
jest
zawsze
dodatni
.
Nierozpoznane znaki w szablonie formatującym będą wyświetlone tak
jak są. "Z" zawsze zwróci "0" kiedy używana jest funkcja
gmdate()
.
Przykład
1
.
przykłady
użycia
date(
)
echo
date
(
"l
dS
of
F
Y
h:i:s
A")
;
echo
"July
1
,
2000
is
on
a
"
.
date
("l"
,
mktime(0,0,0,7,1,2000))
;
|
|
Jeśli
nie
chcesz
,
aby
któryś
z
rozpoznawalnych
w
szablonie
znaków
został
zastąpiony
odpowiadającą
mu
częścią
daty
,
musisz
poprzedzić
go
znakiem
odwrotnego
ukośnika
(
backslash
)
.
Jeśli
znak
razem
z
odwrotnym
ukośnikiem
tworzy
jakiś
znak
specjalny
,
musisz
również
zacytować
ukośnik
odwrotny
.
Przykład
2
.
Opuszczanie
znaków
w
szablonie
date(
)
echo
date(
"l
\\t\h\e
jS")
;
/
/
wyświetla
tekst
typu
'Saturday
the
8th
'
|
|
Można
użyć
date(
)
i
mktime(
)
razem
,
aby
odszukać
daty
w
przyszłości
lub
przeszłości
.
Przykład
3
.
przykłady
zastosowania
date(
)
i
mktime(
)
$jutro
=
mktime
(
0,0,0,date("m"
)
,date("d")+1,date("Y"))
;
$ostatni_miesiac
=
mktime
(0,0,0,date("m")-1,date("d")
,
date("Y"))
;
$kolejny_rok
=
mktime
(0,0,0,date("m")
,
date("d")
,
date("Y")+1)
;
|
|
Notatka
:
Rozwiązanie
to
jest
bardziej
godne
zaufania
od
dodawania
lub
odejmowania
określonej
liczby
sekund
,
chociażby
z
powodu
zmiany
czasu
.
Poniżej
znajduje
się
kilka
przykładów
zastosowania
date(
)
.
Proszę
zwrócić
uwagę
,
że
powinno
się
cytować
wszystkie
znaki
aby
uniknąć
nieoczekiwanych
rezultatów
,
a
poza
tym
,
nawet
te
znaki
,
które
obecnie
nie
mają
znaczenia
,
mogą
mieć
przypisane
jakieś
znaczenie
w
przyszłych
wersjach
PHP
.
O
ile
to
możliwe
,
należy
używać
cudzysłowów
pojedynczych
,
żeby
uniknąć
np
.
zamiany
\n
na
znak
nowej
linii
.
Przykład
4
.
zastosowania
date(
)
/*
Dzisiaj
jest
March
10th
,
2001
,
5:16:18
pm
*
/
$today
=
date(
"F
j
,
Y
,
g:i
a")
;
/
/
March
10
,
2001
,
5:16
pm
$today
=
date("m.d.y")
;
/
/
03.10.01
$today
=
date("j
,
n
,
Y")
;
/
/
10
,
3
,
2001
$today
=
date("Ymd")
;
/
/
20010310
$today
=
date('h-i-s
,
j-m-y
,
it
is
w
Day
z
')
;
/
/
05-16-17
,
10-03-01
,
1631 1618 6
Fripm01
$today
=
date('\i\t
\i\s
\t\h\e
jS
\d\a\y
.')
;
/
/
It
is
the
10th
day
.
$today
=
date("D
M
j
G:i:s
T
Y")
;
/
/
Sat
Mar
10 15:16:08
MST
2001
$today
=
date('H:m:s
\m
\i\s\
\m\o\n\t\h')
;
/
/
17:03:17
m
is
month
$today
=
date("H:i:s")
;
/
/
17:16:17
|
|
Aby
sformatować
datę
w
innych
językach
,
należy
użyć
funkcji
setlocale(
)
i
strftime(
)
.
Patrz
także
getlastmod(
)
,
gmdate(
)
,
mktime(
)
,
strftime(
)
i
time(
)
.