Gestione dei tempi

Informazioni sul Tutorial (autore, data di revisione, ...)

Ultima data di revisione:

Autore Tutorial King Kaito Kid, membro del Team Invisible

Tutorial di PHP

Come gestire le date e il tempo in PHP, passare da data macchina a uomo e viceversa.

Leggi il Tutorial
Introduzione

Il PHP essendo eseguito lato server ha una forte gestione del tempo e permette di passare dal formato unixtime alla data umana ma anche il contratio (da umano a macchina), in questo tutorial vedremo tutte le cose che si possono fare con il tempo con il PHP.


Innanzitutto dovete sapere che il tempo unixtime è espresso in secondi e sono i secondi che son passati dal 1 Gennaio 1970 00:00:00.

Di norma la data in Italia è scritta come Giorno/Mese/Anno ma sarebbe meglio scrivere come Anno/Mese/Giorno perché è più semplice da dire, scrivere ma soprattutto è più internazionale quindi tutte le date espresse qui saranno nel formato Anno/Mese/Giorno, essenzialemnte si segue la ISO8601: 4 cifre per anno 2 cifre per mese 2 cifre per giorno e.g. 2018/12/18


Convertire: da macchina a umano

Nei Tutorial precedenti abbiamo abbiamo usato già la funzione che ci permette di ottenere il tempo unixtime di oggi che è time()

Esiste una funzione che ci permette di convertire il formato unixtime in data umana specificando il pattern da seguire che troverete dettagliato nel manuale del PHP, per seguire ISO8601, per ottenere la data in formato umano è: date("Y/m/d") oppure se volete avere lo standard completo date("c") che produce un output come questo 2004-02-12T15:19:21+00:00 in cui è presente anche il timezone ovvero eventuale fuso orario.

La funzione date ha 2 input, il secondo è facoltativo ed è il tempo unixtime (o timestamp) che se omesso si intende dire oggi, quel particolare momento (perché i secondi avanzano mentre le funzione non è eseguita isatnte pr istante ma solo a chiamata, come ben sapete).

Potete impostare anche il fuso orario con date_default_timezone_set() che prende in input la strnga che identifica la parte del mondo che troverete tutti descritti nel manuale: Lista di fusi orari supportati.


Per impostare il fuso orario italiano scriveremo date_default_timezone_set("Europe/Rome");


Convertire: da umano a macchina

Ora vediamo il processo inverso ovvero data una data umana convertirla in data macchina ovvero unixtime.

Possiamo usare la funzione mktime(hour, minute, second, month, day, year) e gli input sono tutti interi e restituisce in output il formato unixtime (intero).

La funzione è comoda ma ne esiste una che è più comoda e con dei limiti che è strtotime(date), che è un input solo ed è una stringa ed identifica la data che volete convertire.

Scrivendo strtotime("now") si intende dire oggi, strtotime("+1 week 2 days 4 hours 2 seconds") si intende dire una settimana, 2 giorni, 4 ore e 2 secondi da oggi.


Qui potete specificare anche la data ma ATTENTIONE!! in base al separatore che usate viene identificato un tipo di struttura ad esempio usando / viene interpretata come data Americana mentre . oppure - viene interpretata come Europea, se usate 2 cifre per l'anno viene seguito il pattern internazionale: Anno-mese-giorno quindi scrivendo strtotime("12-12-12") innanzitutto è formato Europeo e, essendo non c'è anno da 4 cifre viene seguito il pattern di prima quindi è: Anno 2012, mese 12, giorno 12.


Migliori chiarimenti sul manuale ufficiale del PHP dedicato ai Formati Data e Ora.
Altri Tutorial di questo linguaggio

Qui vengono mostrati tutti i Tutorial riguardo PHP, la pagia viene aggiornata.

Se vuoi cambiare linguaggio puoi farlo da questa pagina: Elenco dei Tutorial

FAQ | Curiosità
Non sono state poste domande su questo Tutorial al momento.
Se hai delle domande da fare usa la sezione dedicata e se la domanda viene posta tante volte o è importante apparirà in questa sezione dedicata alle domande.
Hai una domanda? | Contattaci

Scrivici la domanda e come vuoi essere ricontattato

Puoi comunicare con noi in modo diretto ma RICORDA che se vuoi essere contattato devi indicarci come farlo perché tutte le domande che ci arrivano sono tutte anonime.