PHP disponuje třídou DateTime, která reprezentuje datum a čas pro určený moment.
Třída DateTime usnadňuje čtení, zápis, porovnávání a výpočty s datem a časem.
Objekt DateTime pro aktuální moment:
new DateTime()
Objekt DateTime pro zvolený moment:
new DateTime('2017-03-21 18:30:45')
Objekt DateTime pro zvolený moment s určením časového pásma:
new DateTime('2017-03-21 18:30:45', new DateTimeZone('Europe/Prague'))
Pokud není časové pásmo uvedeno, použije se výchozí časové pásmo.
Vrací objekt DateTime s následujícími údaji:
DateTime date => "2017-03-22 08:32:11.000000" timezone_type => 3 timezone => "Europe/Prague"
kde
- date – datum a čas
- timezone_type – typ zápisu časového pásma
- timezone – hodnota představující určité časové pásmo
Typy zápisu časového pásma
Pozor, pouze zápis časového pásma ve formátu typ 3 umožňuje správně pracovat s letním časem!
Typ 1 – Rozdíl od UTC (UTC offset)
Rozdíl v hodinách a minutách od času UTC pro dané místo a datum.
new DateTime("17 July 2013 -0300")
Formáty:
±[hh]:[mm]
±[hh][mm]
±[hh]
Např.: 17 July 2013 -0300
Typ 2 – Zkratka časového pásma
Časové pásmo je uvedeno zkratkou, např. GMT (Greenwich Mean Time), WET (West European Time) apod.
new DateTime("17 July 2013 GMT")
Seznam zkratek: Wikipedia: List of time zone abbreviations.
Typ 3 – Identifikátor časového pásma
Zápis v podobě php objektu DateTimeZone s uvedením časového pásma ve formátu Europe/Prague.
new DateTime("17 July 2013", new DateTimeZone("Europe/Prague"))
Seznam podporovaných časových pásem.
UTC
Tzv. koordinovaný světový čas (Coordinated Universal Time), založený na atomových hodinách.
16:00 UTC
Jednotlivá časová pásma jsou definována svými odchylkami od UTC.
UTC v ČR
Místní čas v České republice je dán jako UTC+1:00, případně jako UTC+2:00 v období letního času.
Např. 16:00 UTC je 17:00 místního času a 18:00 místního času v období letního času.
(Letní čas je označení systémové úpravy udávání času, při které se v letních měsících namísto času pro příslušné časové pásmo používá čas, který je o určitou hodnotu (o 1 hodinu v ČR) posunut dopředu. Více na Wikipedia: Letní čas)