PHP Datum in čas se uporablja za oblikovanje in nastavitev datuma in ure. Funkcija date() oblikuje
časovni žig v bolj berljiv datum in čas. V nadaljevanju bomo videli primer, ki ponazarja tekočo uro z datumom, ki
je napisana s pomočjo JavaScript, vendar je v njej uporabljen tudi PHP za nastavitev začetnega časa. Zahtevani
oblikovni parameter funkcije date() določa, kako oblikovati rezultat. Med datumske znake lahko vnesemo
tudi ločila, kot so poševnica (/), pika (.) ali vezaj (-).
Znakovni parametri določajo, katere komponente datuma in ure želimo izpisati ter v kakšni obliki:
Funkcije datuma in časa nam omogočajo pridobivanje podatkov neposredno s strežnika. Te nastavitve so odvisne od področne konfiguracije sistema. Pri delu s temi funkcijami moramo biti pozorni na poletni čas in prestopna leta.
| Ime funkcije | Opis delovanja | Primer (Koda za simulator) |
|---|---|---|
checkdate() |
Preveri, ali so podani mesec, dan in leto veljaven gregorijanski datum (vrne true/false). | var_dump(checkdate(2, 29, 2026)); // Leto 2026 ni prestopno |
date() |
Oblikuje lokalni čas in datum glegde na podane znake za format. | echo date("d.m.Y H:i:s"); |
date_add() |
Doda določen časovni interval (dneve, mesece, ure...) obstoječemu objektu DateTime. | $d = date_create("2026-06-05"); date_add($d, date_interval_create_from_date_string("10 days")); echo date_format($d, "Y-m-d"); |
date_create() |
Ustvari in vrne nov DateTime objekt (privzeto na trenutni čas, če je prazen). | $d = date_create("2026-12-25"); echo date_format($d, "d. M Y"); |
date_create_from_format() |
Ustvari nov DateTime objekt iz niza, ki ustreza točno določenemu poljubnemu formatu. | $d = date_create_from_format("j-M-Y", "5-Jun-2026"); echo date_format($d, "Y-m-d"); |
date_date_set() |
Nastavi nov datum (leto, mesec, dan) na obstoječem DateTime objektu. | $d = date_create(); date_date_set($d, 2026, 12, 31); echo date_format($d, "Y-m-d"); |
date_default_timezone_get() |
Vrne privzeti časovni pas, ki ga trenutno uporabljajo vse funkcije v skripti. | echo date_default_timezone_get(); |
date_default_timezone_set() |
Nastavi privzeti časovni pas za celotno skripto (npr. Europe/Ljubljana). | date_default_timezone_set("Europe/Ljubljana"); echo date("H:i"); |
date_diff() |
Izračuna in vrne razliko (interval) med dvema datumoma. | $d1 = date_create("2026-06-01"); $d2 = date_create("2026-06-05"); $diff = date_diff($d1, $d2); echo $diff->format("%r%a dni"); |
date_format() |
Vrne oblikovan niz datuma iz objekta DateTime glede na podano obliko. | $d = date_create(); echo date_format($d, "d. m. Y"); |
date_get_last_errors() |
Vrne tabelo z opozorili in napakami, ujetimi med razčlenjevanjem datuma. | date_create("nepravilen-datum"); print_r(date_get_last_errors()); |
date_interval_create_from_date_string() |
Ustvari objekt DateInterval iz berljivega angleškega relativnega besedila. | $int = date_interval_create_from_date_string("2 months + 5 days"); echo $int->format("%m mesecev, %d dni"); |
date_interval_format() |
Oblikuje in izpiše podatke o časovnem intervalu v določeno obliko. | $int = date_interval_create_from_date_string("1 year"); echo date_interval_format($int, "%Y leto"); |
date_isodate_set() |
Nastavi datum na objektu z uporabo ISO standarda za tedne in dneve v tednu. | $d = date_create(); date_isodate_set($d, 2026, 23, 1); echo date_format($d, "Y-m-d"); // Prvi dan 23. tedna v 2026 |
date_modify() |
Spremeni časovni žig objekta DateTime z relativnim nizom (npr. +1 day). | $d = date_create("2026-06-05"); date_modify($d, "+1 month"); echo date_format($d, "Y-m-d"); |
date_offset_get() |
Vrne odmik časovnega pasu od UTC v sekundah za izbrani datum. | $d = date_create(); echo date_offset_get($d) / 3600 . " ur"; |
date_parse() |
Razčleni poljuben datumski niz v podrobno asociativno tabelo z vsemi komponentami časa. | print_r(date_parse("2026-06-05 15:30:00")); |
date_parse_from_format() |
Razčleni datumski niz v tabelo glede na točno določen vhodni format. | print_r(date_parse_from_format("Y.m.d", "2026.06.05")); |
date_sub() |
Odšteje določen časovni interval (dneve, mesece...) od objekta DateTime. | $d = date_create("2026-06-05"); date_sub($d, date_interval_create_from_date_string("5 days")); echo date_format($d, "Y-m-d"); |
date_sun_info() |
Vrne tabelo z informacijami o sončnem vzhodu, zahodu in mraku za določeno lokacijo in čas. | print_r(date_sun_info(time(), 46.0569, 14.5058)); // Koordinate za Ljubljano |
date_time_set() |
Nastavi nov čas (ura, minuta, sekunda) na obstoječem DateTime objektu. | $d = date_create(); date_time_set($d, 20, 15, 0); echo date_format($d, "H:i:s"); |
date_timestamp_get() |
Vrne Unix časovni žig (število sekund od 1970) iz objekta DateTime. | $d = date_create(); echo date_timestamp_get($d); |
date_timestamp_set() |
Nastavi datum in čas na objektu DateTime s pomočjo Unix časovnega žiga. | $d = date_create(); date_timestamp_set($d, 1770123456); echo date_format($d, "Y-m-d H:i:s"); |
getdate() |
Vrne asociativno tabelo s podrobnimi informacijami o trenutnem ali podanem Unix časovnem žigu. | print_r(getdate()); |
gettimeofday() |
Vrne trenutni sistemski čas kot tabelo s sekundami, mikrosekundami in odmiki. | print_r(gettimeofday()); |
gmdate() |
Deluje enako kot funkcija date(), vendar vrne čas v GMT/UTC časovnem pasu (brez lokalnega odmika). | echo gmdate("Y-m-d H:i:s"); |
gmmktime() |
Vrne Unix časovni žig za datum, ki je podan neposredno v GMT časovnem pasu. | echo gmmktime(0, 0, 0, 6, 5, 2026); |
idate() |
Oblikuje del lokalnega časa ali datuma in ga vrne strogo kot celo število (int). | echo idate("Y"); // Vrne npr. 2026 kot celo število |
localtime() |
Vrne lokalni čas v obliki indeksirane ali asociativne tabele (v stilu C jezika). | print_r(localtime(time(), true)); |
microtime() |
Vrne trenutni Unix časovni žig skupaj z mikrosekundami (idealno za merjenje hitrosti kode). | echo microtime(true); |
mktime() |
Izračuna in vrne Unix časovni žig za podane lokalne parametre časa. | echo mktime(15, 30, 0, 6, 5, 2026); |
strtotime() |
Pretvori angleški opis relativnega časa v ustrezen Unix časovni žig. | echo strtotime("+1 week 2 days"); |
time() |
Vrne trenutni čas strežnika v obliki Unix časovnega žiga (skupno število sekund). | echo time(); |
timezone_abbreviations_list() |
Vrne izjemno podrobno tabelo z vsemi svetovnimi kraticami časovnih pasov in njihovimi podatki. | print_r(timezone_abbreviations_list()["cet"]); // Primer za Srednjeevropski čas |
timezone_identifiers_list() |
Vrne indeksirano tabelo z vsemi uradno priznanimi identifikatorji časovnih pasov na svetu. | print_r(timezone_identifiers_list()); |
timezone_location_get() |
Vrne lokacijske podatke (koordinate, država) za določen objekt DateTimeZone. | $tz = timezone_open("Europe/Ljubljana"); print_r(timezone_location_get($tz)); |
timezone_name_from_abbr() |
Vrne polno ime časovnega pasu na podlagi njegove kratice in odmika. | echo timezone_name_from_abbr("CET"); |
timezone_name_get() |
Vrne ime (identifikator) časovnega pasu iz predhodno ustvarjenega objekta DateTimeZone. | $tz = timezone_open("Europe/Ljubljana"); echo timezone_name_get($tz); |
timezone_offset_get() |
Vrne trenutni odmik časovnega pasu od GMT v sekundah za izbrani objekt. | $tz = timezone_open("Europe/Ljubljana"); echo timezone_offset_get($tz, date_create()); |
timezone_open() |
Ustvari in vrne nov objekt DateTimeZone na podlagi podanega imena pasu. | $tz = timezone_open("America/New_York"); var_dump($tz); |
timezone_transitions_get() |
Vrne podroben seznam vseh prehodov časovnega pasu (npr. premiki na zimski/poletni čas). | $tz = timezone_open("Europe/Ljubljana"); print_r(timezone_transitions_get($tz, time(), time()+31536000)); |
timezone_version_get() |
Vrne trenutno različico uradne baze podatkov o časovnih pasovih (timezonedb), nameščene na strežniku. | echo timezone_version_get(); |