E' un semplice calcolo matematico basato sul timestamp.
Il timestamp è il numero di secondi convenzionalmente fissato a partire dalla data del 1.1.1970.
Premesso che il comando time() fornisce la data corrente, la differenza tra time() e la data da esaminare è il numero di secondi intercorso.
Considerando che un giorno è costituito da 86400 secondi (60 x 60x 24) il numero dei giorni si ottiene con il comando floor che fornisce il numero intero della divisione:
il resto della divisione si ottiene usando % al posto di /
Si divide il resto per 60 per ottenere le ore, il conseguente resto per 60 per i minuti e così via.
Il tutto può essere fatta con una funzione.
Conosciuto il valore da calcolare si sfrutta la function:
Codice: Seleziona tutto
<?php
$data = '1371497319';
function conta_data($data)
{
global $dd, $ore, $min, $sec;
$gg = floor((time() - $data) / '86400');
$ore = floor(((time() - $data) % '86400') / '3600');
$min = floor((((time() - $data) % '86400') % '3600') / '60');
$sec = floor((((time() - $data) % '86400') % '3600') % '60');
$result = $gg . " giorni " . $ore . " ore " . $min . " min " . $sec . " sec";
return $result ;
}
echo conta_data($data) ;
?>
La funzione conta_data('timestamp_da_calcolare') mostra il risultato in giorni, ore, minuti e secondi rispetto alla data corrente.