[PHP] Differenze Secondi Minuti Giorni

bubino8

Utente Attivo
28 Apr 2017
318
18
18
27
BZ
Buongiorno,
Come da titolo vorrei fare uno script che mi calcoli quanto tempo fa è stato pubblicato un commento.

Es.:
Data da DB: 2017-08-31 17:06:58
Data Oggi: 2017-08-22 11:50:21

Esempi di risultato:
Pubblicato X minuti fa - appena passa 59 minuti
Pubblicato X ore fa - appena passa 24 ore
Pubblicato X giorni fa - appena passa giorni
Pubblicato MeseX - AnnoX

grazie a tutti in anticipo
 
Ultima modifica:

Antonio De Marco

Utente Attivo
28 Lug 2015
60
4
8
ademarco.it
Ecco a te un codice bello che pronto
PHP:
$date1 = "2007-03-24";
$date2 = "2009-06-26";

$diff = abs(strtotime($date2) - strtotime($date1));

$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));

printf("%d years, %d months, %d days\n", $years, $months, $days);
Questo lo fa per anni, mesi e giorni però è analogo il codice per le ore e minuti ;)
 
Ultima modifica di un moderatore:

bubino8

Utente Attivo
28 Apr 2017
318
18
18
27
BZ
Grazie per la risposta
Questo codice lo avevo ben trovato, il fatto e che non so adattarlo in modo da restituire ore e minuti.

Se puoi gentilmente aiutarmi
 

marino51

Utente Attivo
28 Feb 2013
2.589
130
63
Lombardia
preferisco non fare calcoli, ma usare le funzioni di php,
inoltre è facile usare ciascun componente della data, sono descritte singolarmente nella echo
PHP:
$DataDaDB = '2015-06-23 19:27:13';

$dt = new DateTime($DataDaDB);
$lt = new DateTime();
$interval = $lt->diff($dt);

echo $lt->format('Y-m-d H:i:s')." current local DateTime<br />";
echo $DataDaDB." data da DB<br /><br />";

echo $interval->y . ' year '
   . $interval->m . ' month '
   . $interval->d . ' day '
   . $interval->h . ' hour '
   . $interval->i . ' minute '
   . $interval->s . ' second<br /><br />';
RISULTATO
upload_2017-8-22_15-59-49.png


adattando ... if ( $interval->y > 0 ) ..... da più di 1 anno
 
  • Like
Reactions: bubino8