Title: Tractament de dates en PHP
1Tractament de dates en PHP
- Microtreball de PI.
- Miquel Esplà i Gomis.
2Índex
- Alguns conceptes previs.
- Funcions generadores bàsiques.
- Funcions generadores-formatadores.
- Altres funcions.
- Més informació i bibliografia.
3Conceptes previs
- Temps UTC (Universal Time Coordination) Temps
estàndard arbitrari que no depèn duna posició al
planeta. - Temps GMT (Greenwich Meridian Time) Temps
relatiu del meridià 0 (de Greenwich). - Timestamp de Unix Segons passats des de linici
de lera Unix 000000 de l1 de gener de 1970.
4Índex
- Alguns conceptes previs.
- Funcions generadores bàsiques.
- Funcions generadores-formatadores.
- Altres funcions.
- Més informació i bibliografia.
5Funció time
- int time (void)
- Retorna la data en el timestamp de Unix.
6La funció gettimeofday
- array float gettimeofday ( bool
retorna_com_float ) - Aquesta funció retorna una sèrie de dades sobre
lhora en forma darray - "sec" - segons des de linici de lera Unix.
- "usec" microsegons.
- "minuteswest" - minuts a loest de Greenwich.
- "dsttime" - tipus de correcció destalvi de llum
diurna . - En cas què retorna_com_float valga 1, el valor es
retornarà en format float.
7Exemple de gettimeofday
- lt?phpprint_r(gettimeofday())echo
gettimeofday(true)?gt - Resultat
- Array (
- sec gt 1073504408
- usec gt 238215
- minuteswest gt 0
- dsttime gt 1
- )
- 1073504408.23910
8La funció microtime
- string float microtime ( bool
rebrer_com_float ) - Si rebrer_com_float somet o té valor 0, la
funció retorna la cadena sec msec, que conté la
part en segons (sec) i en microsegons (msec). - Si rebrer_com_float té valor 1, la funció retorna
un float amb el valor de lhora actual en
microsegons. - Nota Aquesta funció només està disponible en els
sistemes operatius que suporten la cridada a la
funció gettimeofday.
9Índex
- Alguns conceptes previs.
- Funcions generadores bàsiques.
- Funcions generadores-formatadores.
- Altres funcions
- Més informació i bibliografia.
10La funció getdate
- array getdate ( int timestamp )
- Retorna un array associatiu amb un conjunt
delements que descriuen la data i hora definides
pel timestamp, o les actuals si somet
largument. - Cada element té un identificador per a poder
accedir a cada dada de larray.
11La funció getdate
- Identificadors de larray
- "seconds segons
- "minutes minuts
- "hours hores
- "mday dia del mes"wday dia de la setmana
(numèric 0 Diumenge fins a - 6 Dissabte)
- "mon mes (numèric)
- "year any
- "yday dia de lany (des de 0)
- "weekday dia de la setmana (en anglés)
- "month mes (en anglés)
12La funció localtime
- array vector localtime ( int timestamp ,
bool es_associatiu ) - Aquesta funció retorna un conjunt de dades que
descriuen lhora i data locals. - localtime es diferencia de getdate en que depén
del sistema operatiu, ja que obté la data cridant
a la funció de c que té el mateix nom.
13La funció localtime
- Camps de larray retornat per la funció
localtime - "tm_sec" - segons.
- "tm_min" - minuts.
- "tm_hour" - hores.
- "tm_mday" - dia del més.
- "tm_mon" - més de lany, començant en 0 que és
gener. - "tm_year" - Anys passats des de 1900.
- "tm_wday" - Dia de la setmana.
- "tm_yday" - Dia de lany.
- "tm_isdst" - Si el canvi dhora per a lestalvi
energètic té efecte o no.
14La funció date / gmdate
- string date gmdate ( string format , int
timestamp ) - Extreu una o més dades sobre una data timestamp i
les retorna en forma de string. - Si no sespecifica un valor timestamp, la funció
pren per defecte la data i lhora actuals. - Els caràcters de format no identificats per la
funció sextreuen tal i com estan escrits.
15La funció date
- Opcions
- a am o pm
- A AM o PM
- d Dia del més amb zeros
- D Abreviatura del dia de la setmana (anglés)
- F Nom del mes (anglés)
- h Hora en format 1-12j Día del mes sin ceros
- l Dia de la semana
16La funció date(opció,timestamp)
- m Número de mes (1-12)
- M Abreviatura del mes (inglés)
- s Segundos
- y Año con 2 dígitos
- Y Año con 4 dígitos
- z Dia del año (1-365)
- H Hora en formato 0-23iMinutos
- Podreu trobar més opcions de format a la pàgina
- http//es.php.net/manual/es/function.date.php
17Exemple de la funció date
- lt?phpproxima_setmana time() (7 24 60
60) // 7 dias 24 horas 60 mins 60segsecho
'Ara '. date('Y-m-d') ."\n"echo
'Propera Setmana '. date('Y-m-d',
proxima_semana) ."\n"?gt - Eixida
- Ara 2005-03-30
- Propera Setmana 2005-04-07
18La funció mktime / gmmktime
- int mktime gmmktime ( int hora , int minuts
, int segons , int mes , int dia , int any ,
int es_dst ) - Es tracta de la funció inversa a getdate.
- Retorna la data en timestamp a partir dels
paràmetres que se li han passat. - Es poden ometrer paràmetres (de dreta a
esquerra). Aquests seran substituits per les
dades de la data i hora locals.
19La funció strftime / gmstrftime
- string strftime gmstrftime ( string formato
, int marca_de_tiempo ) - Extreu una o més dades sobre una data timestamp i
les retorna en forma dstring en lidioma local
(noms de mesos, dies, etc). - Si no sespecifica un valor timestamp, la funció
pren per defecte la data i lhora actuals. - Els caràcters de format no identificats per la
funció sextreuen tal i com estan escrits.
20La funció strftime / gmstrftime
- Opcions de format de data
- a - nom abreviat del dia de la setmana dacord a
la localitat actual. - A - nom complet del dia de la setmana dacord a
la localitat actual. - b - nom abreviat del mes dacord a la localitat
actual. - B - nom complet del mes dacord a la localitat
actual. - c - representació de data i hora preferida per a
la localitat actual
21La funció strftime / gmstrftime
- d - dia del mes com a un nombre decimal (rang 01
a 31) - D - igual que m/d/y
- G Lany de 4-dígitos.
- H - hora com un nombre decimal emprant un
rellotge de 24 horas (rango 00 a 23) - I - hora com a nombre decimal emprant un
rellotge de 12 horas (rango 01 a 12) - j - dia de lany com a un nombre decimal (rang
001 a 366) - m - mes como a nombre decimal (rang 01 a 12)
- Podeu trobar més opcions de format a
http//es.php.net/manual/es/function.strftime.php
22La funció strptime
- array strptime ( string timestamp, string format
) - Transforma el timestamp creat per la funció
strftime en un array. - El camp format fa referència al format amb que
sha creat el timestamp mitjançant strftime. - Larray resultant conté els camps
- tm_sec Segons transcorreguts del minut actual
(0-61) - tm_min Minuts transcorreguts de lhora actual
(0-59)
23La funció strptime
- tm_hour Hores transcorregudes des de la mitjanit
(0-23) - tm_mday Dia del mes (1-31)
- tm_mon Mesos transcorreguts des de gener (0-11)
- tm_year Anys transcorreguts des de 1900
- tm_wday Dies transcorreguts des del diumenge
(0-6) - tm_yday Dies transcorreguts des de l1 de gener
(0-365) - unparsed La part de la timestamp que no es va
poder reconèixer emprant el paràmetre format
24La funció idate
- int idate ( string formato , int timestamp )
- Retorna un enter que representa una dada referent
a una data. - La data que es retornarà es selecciona amb el
paràmetre formato. - Si no sintrodueix cap timestamp, es pren, per
defecte, lactual.
25La funció idate
- Opcions de format
- B Hora dInternet (també conegut com "beat" de
la marca de rellotges Swatch) - d Dia del mes
- h Hora (en format de 12 hores)
- H Hora (en format de 24 hores)
- i Minuts
- I Retorna 1 si està activat DST i 0 en altre cas
- L Retorna 1 si és un any bixest i 0 en altre cas
- m Número del mes
- s Segons
26La funció idate
- t Número de díes del mes actual
- U Segons des de lera Unix. Es tracta del mateix
resultat que lobtingut amb la funció time - w Dia de la setmana (considerant el número 0 per
al diumenge) - W Número de la setmana començant des del
dilluns. - y Any (1 o 2 dígits)
- Y Any (4 dígitos)
- z Dia de lany
- Z Diferència horària en segons
27La funció strtotime
- int strtotime ( string hora , int timestamp )
- Funció que pren una cadena escrita en anglés, la
qual expressa una data en llenguatge natural, i
la converteix a un timestamp enter relatiu al
paràmetre ahora. - Si no ho aconsegueix, la funció retorna -1.
- Les regles de sintaxi per al paràmetre hora es
poden troba a lenllaç - http//www.gnu.org/software/tar/manual/html_chapt
er/tar_7.html
28Exemple de strtotime
- echo date('Y-m-d', strtotime ("now")), "\n"echo
date('Y-m-d', strtotime (1 day, 0)), "\n" - Leixida seria
- 2005-11-23
- 1970-01-02
-
29Índex
- Alguns conceptes previs.
- Funcions generadores bàsiques.
- Funcions generadores-formatadores.
- Altres funcions.
- Més informació i bibliografia.
30La funció checkdate
- bool checkdate ( int mes, int dia, int any )
- Comprova si la data que se li passa per
paràmetres és correcta retornant TRUE o FALSE. - Es consideren dates correctes
- Les que tenen un any entre 1900 i 32767
- Les que tenen un més entre 1 i 12
- Les que tenen un dia adequat al més.
31La funció date_default_timezone_get
- string date_default_timezone_get (void)
- Retorna la zona horària amb un identificador.
- Si les variables dentorn que contenen aquesta
informació són buides, la funció retorna
lidentificador UTC.
32La funció date_default_timezone_set
- bool date_default_timezone_set ( string
identificador_de_zona_horària ) - Estableix la zona horària en el sistema, la qual
serà utilitzada per la resta de funcions
explicades. - Exemple
- date_default_timezone_set(UTC)date_default_ti
mezone_set(Europe/Lisbon)
33La funció sun_rise / sun_set
- string double integer date_sunrise
date_sunrise ( int timestamp , int format ,
float latitud , float longitud , float cènit ,
float diferència_gmt ) - Aquestes funcions retornen lhora a què ix o es
pon, respecivament, el Sol en un determinat dia,
passat per paràmetre. - Es poden passar paràmetres per a indicar la
posició global o langle de la terra, com la
longitud, la latitud o el cènit.
34La funció sun_rise / sun_set
- El paràmetre optatiu més interessant és el de
format. Hi ha tres possibilitats de formats
deixida - SUNFUNCS_RET_STRING Retorna una cadena que
representa una data. - SUNFUNCS_RET_DOUBLE Retorna una xifra en doble
precissió. - SUNFUNCS_RET_TIMESTAMP Retorna un timestamp
enter.
35Índex
- Alguns conceptes previs.
- Funcions generadores bàsiques.
- Funcions generadores-formatadores.
- Altres funcions.
- Més informació i bibliografia.
36Bibliografia i informació
- http//php.net
- http//es.php.net/manual/es/ref.datetime.php