La differenza tra data e ora in PHP

August 18

PHP timestamp possono essere utili per calcolare la differenza tra due punti nel tempo, come ad esempio il calcolo date di nascita, il numero di giorni fino a quando un disegno di legge è dovuto o quante ore sono passati da ultimo accesso di un utente. Se si desidera solo sapere quanti secondi trascorsi tra due time stamp, basta sottrarre uno dall'altro. Ulteriori calcoli avanzati possono essere raggiunti attraverso la conversione dei timestamp in oggetti DateTime e l'utilizzo di funzioni di tempo incorporato.

Struttura

PHP timestamp hanno un valore intero che rappresenta il numero di secondi trascorsi tra la Unix Epoch (1 ° gennaio 1970, 00:00:00 GMT) e l'ora corrente. La funzione "time ()" restituisce la corrente Unix timestamp. Un tipico timestamp PHP apparirà come "1307826891."

La conversione di data e ora in DateTime

Conversione PHP timestamp in oggetti DateTime permette di fare uso di funzioni di formattazione e differenza di tempo avanzate datetime. Utilizzare la funzione "setTimestamp" aggiungendo il seguente codice, dove $ timestamp "è il vostro PHP timestamp:

$ Data-> setTimestamp ($ timestamp);

Un oggetto DateTime è simile a "2005-08-15T15: 52: 01 + 0000" o "Lunedi, 15-ago-05 15:52:01 UTC."

Differenza tra Timestamps

Utilizzare la funzione "diff" del DateTime per calcolare la differenza tra i due data e ora che sono stati convertiti in oggetti DateTime. Per esempio:

$ Differenza = $ date1-> diff ($ data2);

"$ Date1" e $ date2 "sono gli oggetti DateTime. L'oggetto DateInterval tornato ha campi che danno il numero di anni, mesi, giorni, ore, minuti e secondi tra le due date.

Formattare la differenza tra data e ora

Formattare la differenza di tempo tra due marche temporali che sono stati convertiti in oggetti DateTime con la funzione "formato", aggiungendo il codice:

$ Difference_format = $ differenza:> formato ( '% Y-% m-% d% h-% i-% s');

Questo vi darà la differenza in "anni-mesi-giorni ore-minuti-secondi." È possibile inviare questo con il codice "echo $ diff_format ;."