Pogledajmo kako raditi sa datumima i vremenom u PHP-u.
Vrijeme uUnix-računari
Za Unix računare vrijeme počinje u ponoć 1. januara 1970. godine. Svaki datum se računa kao broj sekundi (označenih vremenskom oznakom) koje su prošle od 1. januara 1970. godine. Ove konvencije se takođe koriste u PHP-u. Na primjer, želimo ići jedan dan unaprijed. Zatim samo trebate dodati 60×60×24 sekunde trenutnoj vrijednosti vremenske oznake.
Ova šema za praćenje vremena uvelike pojednostavljuje operacije s datumima. Na primjer, ako je jedna vrijednost vremenske oznake veća od druge, prva vrijednost odgovara kasnijem datumu od druge.
Vremenske jedinice u sekundi
Dobivanje trenutnog vremena
U PHP-u, da biste dobili trenutnu vrijednost vremenske oznake, trebate pozvati funkciju time() bez parametara, na primjer:
Mnoge PHP funkcije datuma i vremena uzimaju vrijednost vremenske oznake kao argument. Na primjer, funkcija date() vraća niz datuma formatiran prema navedenom formatu, na primjer:
Stvaranjevremenska oznaka po datumu
Funkcijamktime() će kreirati vremensku oznaku ako navedete sat, minut, sekundu, dan u mjesecu, mjesec i godinu:
Funkcijastrtotime()
Funkcija generiše vremensku oznaku za datum naveden kao fraza na engleskom, na primjer 1. april ili petak.
Vrijednost datuma mora biti navedena u formatu GGGG-MM-DD. Ako strtotime funkcija ne može pretvoriti datum, vraća false.
Primjeri korištenja funkcijedatum()
Ugrađena funkcija floor() se koristi za odbacivanje razlomka rezultata.
Sljedeći tekst možete preskočiti pri prvom čitanju
Formati datuma u bazama podatakaMySQL
Format vremenske oznake u PHP-u nije kompatibilan sa formatom vremenske oznake u MySQL DBMS.
MySQL ima tri tipa polja za datum i vrijeme: DATA (datum), TIME (vrijeme), DATETIME (datum i vrijeme). Postoji i poseban tip podataka TIMESTAMP koji radi kao DATETIME, ali se automatski ažurira prema njemu trenutno vrijeme svaki zapis vremenskog rasporeda se umeće ili ažurira.
Za konvertovanje vremenske oznake u PHP formatu u MySQL format, možete koristiti sljedeći kod:
Datum("Y-m-d H:i:s", $timestamp)
Na primjer, možemo koristiti “2008-10-01 13:23:40” kao datum i vrijeme.
Da biste dobili PHP vremensku oznaku iz SELECT upita, trebate koristiti UNIX_TIMESTAMP() SQL funkciju:
SELECT UNIX_TIMESTAMP(datum) IZ tabele
MySQL ima mnogo drugih korisne funkcije za rad sa datumom i vremenom.
string datum(niz formatu[, int vremenska oznaka])
Vraća vrijeme formatirano prema argumentu formatu, koristeći vremensku oznaku specificiranu argumentom vremenska oznaka ili trenutni sistemsko vrijeme, Ako vremenska oznaka nije specificirano. drugim riječima, vremenska oznaka je opciono i podrazumevano je na vrednost koju vraća funkcija vrijeme() .
komentar: Za većinu sistema, važeći datumi su od 13. decembra 1901, 20:45:54 GMT do 19. januara 2038, 03:14:07 GMT. (Ovi datumi odgovaraju minimalnim i maksimalna vrijednost 32-bitni predpisani cijeli broj). Za Windows, važeći datumi su od 01/01/1970 do 01/19/2038.
komentar: Da biste dobili vremensku oznaku iz niza prikaza datuma, možete koristiti funkciju strtotime(). Osim toga, neke baze podataka imaju vlastite funkcije za pretvaranje internog prikaza datuma u vremensku oznaku (na primjer, funkcija MySQL UNIX_TIMESTAMP).
U parametru formata prepoznaju se sljedeći znakovi
Znak u nizu formata | Opis | Primjer povratne vrijednosti |
---|---|---|
a | Ante meridiem ili Post meridiem malim slovima | ujutro ili poslijepodne |
A | Ante meridiem ili Post meridiem in velika slova | AM ili popodne |
B | Vrijeme u Swatch Internet standardu | Od 000 do 999 |
c | Datum na ISO format 8601 (dodato u PHP 5) | 2004-02-12T15:19:21+00:00 |
d | Dan u mjesecu, 2 cifre sa vodećim nulama | od 01 do 31h |
D | Skraćeni naziv dana u sedmici, 3 znaka | od pon do ned |
F | Puni naziv mjeseca, kao što je januar ili mart | od januara do decembra |
g | Sat u 12-satnom formatu bez vodećih nula | Od 1 do 12 |
G | Sat u 24-satnom formatu bez vodećih nula | Od 0 do 23 |
h | Sat u 12-satnom formatu sa vodećim nulama | Od 01 do 12h |
H | Sat u 24-satnom formatu sa vodećim nulama | Od 00 do 23 |
i | Minute sa vodećim nulama | 00 do 59 |
ja (veliko i) | Znak za ljetno računanje vremena | 1 ako datum odgovara ljetnom računanju vremena, u suprotnom 0 u suprotnom. |
j | Dan u mjesecu bez vodećih nula | Od 1 do 31 |
l (mala slova "L") | Puni naziv dana u sedmici | Od nedjelje do subote |
L | Znak prestupne godine | 1 ako je godina prijestupna, u suprotnom 0. |
m | Redni broj mjeseca sa vodećim nulama | Od 01 do 12h |
M | Skraćeni naziv mjeseca, 3 znaka | Od januara do decembra |
n | Redni broj mjeseca bez vodećih nula | Od 1 do 12 |
O | Razlika od srednjeg vremena po Griniču u satima | Na primjer: +0200 |
r | Datum u formatu RFC 2822 | Na primjer: Thu, 21 Dec 2000 16:01:07 +0200 |
s | Sekunde sa vodećim nulama | Od 00 do 59 časova |
S | Engleski sufiks za redni broj dana u mjesecu, 2 znaka | st, nd, rd ili th. Koristi se zajedno sa j |
t | Broj dana u mjesecu | Od 28 do 31 |
T | Vremenska zona na serveru | Primjeri: EST, MDT... |
U | Broj sekundi koji su prošli od početka Unix epohe (The Unix Epoch, 1. januar 1970, 00:00:00 GMT) | Vidi također vrijeme() |
w | Redni broj dana u sedmici | Od 0 (nedjelja) do 6 (subota) |
W | Redni broj sedmice u godini prema ISO-8601, prvi dan u sedmici je ponedjeljak (dodato u PHP 4.1.0) | Na primjer: 42 (42. sedmica u godini) |
Y | Serijski broj godine, 4 cifre | Primjeri: 1999, 2003 |
y | Broj godine, 2 cifre | Primjeri: 99 , 03 |
z | Redni broj dana u godini (numeracija od 0) | Od 0 do 365 |
Z | Pomak vremenske zone u sekundama. Za vremenske zone zapadno od UTC ovo je negativan broj, za vremenske zone istočno od UTC je pozitivan. | -43200 do 43200 |
Bilo koji drugi karakter koji se nađe u nizu formatu, će biti izlaz u liniju rezultata bez promjena. Z uvijek vraća 0 kada se koristi gmdate() .
Primjeri korištenja funkcije date().
Možete izbjeći prepoznavanje znaka kao znaka za formatiranje tako što ćete izbjeći znak sa \ Ako je, u kombinaciji sa \, znak poseban (na primjer, \t), trebali biste dodati još jedan \.
Izlazni znakovi u funkciji date().
Za prikaz vremena ili datuma u prilagođenom formatu postoji funkcija datuma.
Ovaj primjer prikazuje trenutni datum u formatu dan/mjesec/godina kao brojevi. Nakon što pročitate ovaj članak do kraja, moći ćete ga prikazati trenutni datum i vrijeme u bilo kojem formatu.
Ova funkcija vam omogućava da prikažete ne samo trenutni datum i vrijeme, već i pretvorite vremensku oznaku u određeni format. Vremenska oznaka je broj sekundi koji je prošao od osnivanja linuxa. Ovaj broj se može dobiti pomoću funkcije time(). Vremenska oznaka u funkciji datuma je izborni parametar.Da biste dobili format koji vam je potreban, možete koristiti posebne modifikatore u prvom parametru. Ima ih dosta.
Znak u nizu formata | Opis | Primjer povratne vrijednosti |
---|---|---|
a | am ili pm malim slovima | am, pm |
A | AM ili PM velikim slovima | AM, popodne |
B | Vrijeme u Swatch Internet standardu | Od 000 do 999 |
c | Datum u ISO 8601 formatu (dodato u PHP 5) | 2005-06-11T11:11:11+00:00 |
d | Dan u mjesecu, 2 cifre sa vodećim nulama | od 01 do 31h |
D | Skraćeni naziv dana u sedmici, 3 znaka | od pon do ned |
F | Puni naziv mjeseca | od januara do decembra |
g | Sat u 12-satnom formatu bez vodećih nula | Od 1 do 12 |
G | Sat u 24-satnom formatu bez vodećih nula | Od 0 do 23 |
h | Sat u 12-satnom formatu sa vodećim nulama | Od 01 do 12h |
H | Sat u 24-satnom formatu sa vodećim nulama | Od 00 do 23 |
i | Minute sa vodećim nulama | 00 do 59 |
ja (veliko i) | Znak za ljetno računanje vremena | 1 ako datum odgovara ljetnom računanju vremena, u suprotnom 0 u suprotnom. |
j | Dan u mjesecu bez vodećih nula | Od 1 do 31 |
l (mala slova "L") | Puni naziv dana u sedmici | Od nedjelje do subote |
L | Znak prestupne godine | 1 ako je godina prijestupna, inače 0. |
m | Redni broj mjeseca sa vodećim nulama | Od 01 do 12h |
M | Skraćeni naziv mjeseca, 3 znaka | Od januara do decembra |
n | Redni broj mjeseca bez vodećih nula | Od 1 do 12 |
O | Razlika od srednjeg vremena po Griniču u satima | +0200 |
r | Datum u formatu RFC 2822 | Thu, 28 Jan 2011 15:11:14 +0200 |
s | Sekunde sa vodećim nulama | Od 00 do 59 časova |
S | Engleski sufiks za redni broj dana u mjesecu, 2 znaka | st, nd, rd ili th. Koristi se zajedno sa j |
t | Broj dana u mjesecu | Od 28 do 31 |
T | Vremenska zona na serveru | Primjeri: EST, MDT... |
U | Broj sekundi koji su prošli od početka Unix epohe (The Unix Epoch, 1. januar 1970, 00:00:00 GMT) | 1356361196 |
w | Redni broj dana u sedmici | Od 0 (nedjelja) do 6 (subota) |
W | Redni broj sedmice u godini prema ISO-8601, prvi dan u sedmici je ponedjeljak (dodato u PHP 4.1.0) | Na primjer: 42 (42. sedmica u godini) |
Y | Serijski broj godine, 4 cifre | Primjeri: 1986, 2012 |
y | Broj godine, 2 cifre | Primjeri: 86, 12 |
z | Redni broj dana u godini (numeracija od 0) | Od 0 do 365 |
Z | Pomak vremenske zone u sekundama. Za vremenske zone zapadno od UTC ovo je negativan broj, za vremenske zone istočno od UTC je pozitivan. | -43200 do 43200 |
Ako smatrate da je ova stranica korisna, možete je pomoći u razvoju postavljanjem
JavaScript je blokiran u vašem pretraživaču. Omogućite JavaScript da bi stranica funkcionisala!
Prikaz datuma i vremena
U distribuiranim sistemima kao što je Internet, vrijeme igra posebnu ulogu. Zbog malog odstupanja u sistemskom satu, Forex igrač može izgubiti desetine hiljada dolara u roku od nekoliko minuta; sistem poslovne inteligencije će pogriješiti u pravljenju prognoze; NNTP serveri će izgubiti tokom sinhronizacije važne informacije, potreban korisniku itd.
PHP sadrži mnoge funkcije za rad sa datumom i vremenom. Najviše se koriste:
- vrijeme()- vraća trenutno apsolutno vrijeme. Ovaj broj je jednak broju sekundi koje su prošle od ponoći 1. januara 1970. (od početka UNIX ere).
- getdate()- čita informacije o datumu i vremenu. Vraća asocijativni niz koji sadrži informacije za navedeno ili trenutno (podrazumevano) vrijeme. Niz sadrži sljedeće elemente:
Primjer 1
Korištenje getdate() $val) echo "$key = $val
"; eho"
Danas: $d.$d.$d"; ?>REZULTAT PRIMJERA 1:
Sekunde = 21 minuta = 4 sata = 12 mdan = 10 sdan = 4 pon = 11 godina = 2005 ydan = 313 radni dan = četvrtak mjesec = novembar 0 = 1131613461 Danas: 10.11.2005.
- datum()- formatiranje datuma i vremena. Argumenti: format string i apsolutno vrijeme. Drugi argument je neobavezan. Vraća string sa datim ili trenutnim datumom u navedenom formatu. Niz formata može sadržavati sljedeće kodove:
a A Oznaka "AM" ili "PM" uključena d Dan u mjesecu (01-31) D Skraćeni naziv dana u sedmici (tri slova) F Puni naziv mjeseca g Sat (12-satni format bez vodećih nula) G Sat (24-satni format bez vodećih nula) h Sat (12-satni format) H Sat (24-satni format) i Minute (00-59) j Dan u mjesecu bez vodećih nula (1-31) l Puni naziv dana u sedmici L Indikator prijestupne godine (0 ili 1) m Mjesec (01-12) M Skraćeni naziv mjeseca (tri slova) n Mjesec (1-12) s Sekunde (00-59) t Broj dana u datom mjesecu (od 28 do 31) U Apsolutno vrijeme w y Godina (dva ranga) Y Godina (četiri ranga) z Dan u godini (0-365) Z Pomak vremenske zone u sekundama (-43200 do 43200) Sve druge informacije uključene u string formata biće umetnute u vraćeni niz. Ako trebate dodati znakove u niz formata koji su sami kodovi formata, onda im mora prethoditi obrnuta kosa crta "\". Znakovi koji postaju kodovi formata kada se dodaju obrnutom kosom crtom moraju prethoditi dvije kose crte naprijed. Na primjer, ako trebate dodati "n" nizu, morate unijeti "\\n" jer je "\n" znak novog reda.
Primjer 2
Korištenje datuma() REZULTAT PRIMJERA 2:
Danas: 11/10/05 13:03
- mktime()- vraća apsolutno vrijeme, koje se onda može koristiti s funkcijama date() ili getdate(). Uzima do šest cjelobrojnih argumenata sljedećim redoslijedom:
Gledaj
minuta
sekundi
mjesec
dan u mjesecu
godinePrimjer 3
Korištenje mktime() REZULTAT PRIMJERA 3:
- datum provjere()- provjera ispravnosti datuma. Argumenti: mjesec, dan, godina. Vraća true ako je datum tačan, tj.
mjesec - cijeli broj od 1 do 12;
dan je cijeli broj koji ne prelazi ukupan broj dana u datom mjesecu. U ovom slučaju, prijestupne godine se obrađuju ispravno;
godina je cijeli broj od 1 do 32767.na primjer:
If (!checkdate($month, 1, $year)) ( $d = getdate(); $month = $d; $year = $d; )
Pažnja! Datum može biti unutar važećeg raspona, ali druge funkcije datuma neće prihvatiti vrijednost. Dakle, mktime() se ne bi trebao koristiti godinama prije 1902., a također bi se trebao koristiti s oprezom godinama prije 1970. godine.
- strftime()- formiranje lokalnog datuma i vremena. Argumenti: string formata i apsolutno vrijeme. Drugi argument je neobavezan. Vraća string sa datim ili trenutnim datumom u navedenom formatu. U ovom slučaju, nazivi mjeseci i dana u sedmici se izdvajaju iz jezika odabranog pomoću funkcije. Niz formata može sadržavati sljedeće kodove:
%a Skraćeni naziv dana u sedmici %A Puni naziv dana u sedmici %b Skraćeni naziv mjeseca %B Puni naziv mjeseca %c Željeni format datuma i vremena %C Broj stoljeća %d Dan u mjesecu (1-31) %D Isto kao %m/%d/%y %e Mjesec (1-12) %h Isto kao %b %H Sat (24-satni format) %I Sat (12-satni format) %j Dan u godini (0-365) %m Mjesec (1-12) %M minuta %n Znak novog reda %p "am" ili "pm" notacija uključena %r Vrijeme korištenjem notacije prijepodne/p.m %R Vrijeme u 24-satnom formatu %S Sekunde (00-59) %t Tab znak %T Isto kao %H:%M:%S %u Broj dana u nedelji (1 - ponedeljak, 7 - nedelja) %U Broj sedmice. Odbrojavanje počinje prve nedjelje u godini %V Broj sedmice prema ISO 8601:1988. Prva sedmica mora imati najmanje četiri dana, a prvim danom se smatra ponedjeljak %W Broj sedmice. Odbrojavanje počinje prvog ponedjeljka u godini %w Broj dana u sedmici (0 - nedjelja, 6 - subota) %x Željeni format datuma bez vremena %X Željeni format vremena bez datuma %y Godina (dva ranga) %Y Godina (četiri ranga) %Z Vremenska zona (naziv ili skraćenica) %% Simbol "%" Sve druge informacije uključene u string formata biće umetnute u vraćeni niz.
(PHP 4, PHP 5, PHP 7)
datum — Formatira izlaz sistemskog datuma/vremena
Opis
String datum (string $format [, int $timestamp = vrijeme() ])
Vraća string formatiran prema navedenom obrascu formata. vrijeme().
Koristi se vremenska oznaka specificirana argumentom vremenske oznake ili trenutno sistemsko vrijeme ako vremenska oznaka nije navedena.
Dakle, vremenska oznaka je opciona i podrazumevana je na vrednost koju vraća funkcija Lista parametara Obrazac niza rezultata ( string) sa datumom. Pogledajte opcije formatiranja u nastavku. Takođe postoji nekoliko unapred definisanih konstanti datuma/vremena koje se mogu koristiti umesto ovih parametara. na primjer:.
Znak u nizu formata | Opis | Primjer povratne vrijednosti |
---|---|---|
zamjenjuje šablon | --- | --- |
d | "D, d M Y H:i:s" | U parametru formata prepoznaju se sljedeći znakovi 01 Dan 31 |
D | Dan u mjesecu, 2 cifre sa početnom nulom od | U parametru formata prepoznaju se sljedeći znakovi to Dan Predstavljanje teksta |
j | dani u sedmici, 3 znaka | U parametru formata prepoznaju se sljedeći znakovi 1 Dan 31 |
l pon | Puni naziv dana u sedmici | U parametru formata prepoznaju se sljedeći znakovi Ned Dan Dan u mjesecu bez vodeće nule |
(mala slova "L") | Nedjelja | U parametru formata prepoznaju se sljedeći znakovi 1 Subota 7 N |
S | Engleski sufiks za redni broj dana u mjesecu, 2 znaka | Redni broj dana u sedmici u skladu sa standardom ISO-8601 (dodat u PHP 5.1.0), (ponedjeljak) do, (nedjelja) st nd rd j |
w | Redni broj dana u sedmici | U parametru formata prepoznaju se sljedeći znakovi 0 ili 6 th |
z | . Koristi se u kombinaciji sa | (nedjelja) do 0 Dan 365 |
(subota) | --- | --- |
W | Redni broj dana u godini (počevši od 0) | Od 42 Sedmica |
Redni broj sedmice u godini u skladu sa standardom ISO-8601; sedmice počinju u ponedjeljak (dodato u PHP 4.1.0) | --- | --- |
F | Puni naziv mjeseca, kao što je januar ili mart | U parametru formata prepoznaju se sljedeći znakovi na primjer: Dan (42. sedmica u godini) |
m | Mjesec | U parametru formata prepoznaju se sljedeći znakovi 01 Dan 12 |
M | Skraćeni naziv mjeseca, 3 znaka | U parametru formata prepoznaju se sljedeći znakovi januara Dan decembar |
n | Serijski broj mjeseca sa početnom nulom | U parametru formata prepoznaju se sljedeći znakovi 1 Dan 12 |
t | Jan | U parametru formata prepoznaju se sljedeći znakovi 28 Dan 31 |
dec | --- | --- |
L | Znak prestupne godine | 1 Serijski broj mjeseca bez vodeće nule 0 . |
Broj dana u navedenom mjesecu | Godina Y, ako je godina prijestupna, inače W o | Broj godine prema ISO-8601 standardu. 1999 Ima isto značenje kao 2003 |
Y | Serijski broj godine, 4 cifre | Broj godine prema ISO-8601 standardu. 1999 , 2003 |
y | Broj godine, 2 cifre | Broj godine prema ISO-8601 standardu. 99 , 03 |
, osim kada je ISO broj sedmice ( | --- | --- |
a | ) pripada prethodnoj ili narednoj godini; tada će se koristiti godina te sedmice. (dodato u PHP 5.1.0) | primjeri: Ima isto značenje kao ili |
A | Vrijeme | Ante meridiem (engleski: "prije podne") ili Post meridiem (engleski: "poslije podne") malim slovima Ima isto značenje kao am |
B | pm | U parametru formata prepoznaju se sljedeći znakovi 000 Dan 999 |
g | Ante meridiem ili Post meridiem velikim slovima | U parametru formata prepoznaju se sljedeći znakovi 1 Dan 12 |
G | A.M. | U parametru formata prepoznaju se sljedeći znakovi 0 Dan 23 |
h | P.M. | U parametru formata prepoznaju se sljedeći znakovi 01 Dan 12 |
H | Vrijeme u internet formatu vremena (alternativni sistem za doba dana) | U parametru formata prepoznaju se sljedeći znakovi 00 Dan 23 |
i | Sat u 12-satnom formatu bez vodeće nule | U parametru formata prepoznaju se sljedeći znakovi 00 Dan 59 |
s | Sat u 24-satnom formatu bez vodeće nule | U parametru formata prepoznaju se sljedeći znakovi 00 Dan 59 |
Sat u 12-satnom formatu sa početnom nulom | Mikrosekunde (dodato u PHP 5.2.2). Imajte na umu da datum() uvek će se vraćati 000000 , jer prihvata cijeli broj ( cijeli broj) parametar, dok Datum i vrijeme::format() podržava mikrosekunde. | Od 654321 |
Vremenska zona | --- | --- |
e | Kod skale vremenske zone (dodat u PHP 5.1.0) | Broj godine prema ISO-8601 standardu. UTC, GMT, Atlantik/Azori |
I(veliko i) | Znak za ljetno računanje vremena | 1 , ako datum odgovara ljetnom računanju vremena, 0 inače. |
O | Razlika od vremena u Griniču, u satima | Od +0200 |
P | GMT razlika sa dvotočkom između sati i minuta (dodato u PHP 5.1.3) | Od +02:00 |
T | Skraćenica vremenske zone | Broj godine prema ISO-8601 standardu. EST, MDT ... |
Z | Pomak vremenske zone u sekundama. Za vremenske zone koje se nalaze zapadno od UTC vraćaju se negativni brojevi, a za one istočno od UTC vraćaju se pozitivni brojevi. | U parametru formata prepoznaju se sljedeći znakovi -43200 Dan 50400 |
Pun datum/vrijeme | --- | --- |
c | Datum u ISO 8601 formatu (dodato u PHP 5) | 2004-02-12T15:19:21+00:00 |
r | Datum u » RFC 2822 formatu | Od Thu, 21 Dec 2000 16:01:07 +0200 |
U | Broj sekundi koji su prošli od početka Unix epohe (The Unix Epoch, 1. januar 1970. 00:00:00 GMT) | Vidi također vrijeme() |
Svi drugi znakovi koji se nađu u nizu uzorka bit će ispisani nepromijenjeni u nizu rezultata. Z uvek se vraća 0 prilikom upotrebe gmdate().
vremenska oznakaKomentar:
Budući da dotična funkcija uzima vremenske oznake poput cijeli broj, znak za formatiranje Sat u 12-satnom formatu sa početnom nulom bit će korisno samo kada koristite funkciju date_format() i prilagođene vremenske oznake kreirane pomoću funkcije date_create().
Opcijski parametar vremenske oznake je cijeli broj vremenska oznaka, podrazumevano na trenutno lokalno vreme ako vremenska oznaka nije navedena. Drugim riječima, zadana vrijednost je jednaka rezultatu funkcije vrijeme().
Povratne vrijednosti
Vraća formatirani niz datuma. Prilikom prosljeđivanja nenumeričke vrijednosti kao parametra, bit će vraćena vremenska oznaka FALSE i nastaje greška nivoa E_UPOZORENJE.
Lista promjena
Verzija | Opis |
---|---|
5.1.0 | Važeći raspon datuma za vremenske oznake je obično od 13. decembra 1901. 20:45:54 GMT do 19. januara 2038. 03:14:07 GMT. (Odgovaraju minimalnoj i maksimalnoj vrijednosti 32-bitnog cijelog broja sa predznakom). Međutim, za PHP verzije ispod 5.1.0 u nekim operativni sistemi |
5.1.0 | (npr. Windows) ovaj raspon je bio ograničen na datume 01-01-1970 do 19-01-2038. Greške vezane za vremenske zone sada generiraju greške nivoa E_STRICT I. |
5.1.1 | E_NOTICE |
Za standardne formate datuma/vremena postoje posebne konstante koje se mogu specificirati kao parametar formata.
Primjeri datum()
// postavlja zadanu vremensku zonu. Dostupno od PHP 5.1
date_default_timezone_set("UTC");
// će ispisati nešto ovako: ponedjeljak
echo date("l");
// će izbaciti nešto ovako: ponedeljak, 8. avgust 2005. 15:12:46
echo date ("l jS \of F Y h:i:s A" );
// će ispisati: 1. jul 2000. je u subotu
echo "1. jul 2000. je na " . datum("l", mktime(0, 0, 0, 7, 1, 2000));
/* primjer korištenja konstante kao parametra formatiranja */
// će ispisati nešto ovako: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);
// će ispisati nešto ovako: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
?>
Da biste spriječili da znak bude prepoznat kao znak za formatiranje, morate ga izbjeći pomoću obrnute kose crte. Ako je escape-znak također niz formata, onda ga treba ponovo izbaciti.
Primjer #2 Izlazni znakovi u funkciji datum()
// će ispisati nešto ovako: srijeda 15
echo date ("l \t\h\e jS" );
?>
Za prikaz prošlih i budućih datuma, zgodno je koristiti funkcije datum() I mktime().
Primjer #3 Primjer dijeljenje funkcije datum() I mktime()
$tomorrow = mktime (0 , 0 , 0 , datum ("m" ) , datum ("d" )+ 1, datum ("Y" ));
$lastmonth = mktime (0, 0, 0, datum ( "m") - 1, datum ( "d"), datum ( "Y"));
$nextyear = mktime (0 , 0 , 0 , datum ( "m" ), datum ( "d" ), datum ( "Y" )+ 1 );
?>
Komentar:
Ova metoda je pouzdanija od jednostavnog oduzimanja i dodavanja sekundi vremenskoj oznaci, jer omogućava fleksibilan prijelaz na ljetno/zimsko računanje vremena ako je potrebno.
Još nekoliko primjera korištenja funkcije datum(). Važno je napomenuti da biste trebali izbjegavati sve znakove koje želite ostaviti nepromijenjenim. To važi i za one likove koji jesu trenutna verzija PHP nije prepoznat kao formatiranje jer bi to moglo biti uvedeno u budućim verzijama.
Za izbjegavanje izlaznih sekvenci (kao što je \n), trebali biste koristiti jednostruke navodnike. datum()
Primjer #4 Formatiranje korištenjem
// Pretpostavimo da je trenutni datum 10. mart 2001, 17:16:18,
// i nalazimo se u vremenskoj zoni planinskog standardnog vremena (MST).
$danas = datum ("F j, Y, g:i a" ); // 10. mart 2001., 17:16
$danas = datum("m.d.y"); // 03.10.01
$danas = datum("j, n, Y"); // 10, 3, 2001
$danas = datum("Ymd"); // 20010310 $danas = datum ("h-i-s, j-m-y, w Day");
// 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$danas = datum ("D M j G:i:s T Y" ); // Sub 10 Mar 17:16:18 MST 2001
$danas = datum ("H:m:s \m \i\s\ \m\o\n\t\h" ); // 17:03:18 m je mjesec
$danas = datum("H:i:s"); // 17:16:18
$danas = datum ("Y-m-d H:i:s" ); // 2001-03-10 17:16:18 (MySQL DATETIME format)
?>
Za formatiranje datuma na drugim jezicima, koristite umjesto toga datum() funkcije setlocale() E_STRICT strftime().
Bilješke
Komentar:
Da biste dobili vremensku oznaku iz niza prikaza datuma, možete koristiti funkciju strtotime(). Osim toga, neke baze podataka imaju svoje funkcije za pretvaranje internog prikaza datuma u vremensku oznaku (na primjer, funkcija MySQL » UNIX_TIMESTAMP).