[PHP] Differenza Date + Ore

  • Creatore Discussione Creatore Discussione Emix
  • Data di inizio Data di inizio

Emix

Utente Attivo
15 Feb 2010
596
0
16
Buonasera a tutti,
era un pò che non scrivevo... Sto implementando uno script stupido per modificare una tabella.
Semplicemente nella tabella c'è un contratto inserito e in automatico nel DB c'è la data e l'ora completa (datetimestamp) in cui lo carica. L'utente può modificare questo contratto non oltrepassando un ora di tempo da quando lo ha caricato.
Assumendo che io abbia 2017-07-17 10:23:13 nel DB e devo confrontarlo con l'ora e la data di oggi stesso ho dei problemi.
Mi spiego.. usando la funzione nuova di PHP va, ma non riesco poi a fare un if in cui chiedergli se è passata + o - di un ora. Riuscite ad aiutarmi? spero di essermi spiegato...

Grazie
 
non ho capito quale nuova funzione di php, non l'hai indicata, per cui la mia soluzione
PHP:
$dt = '2017-07-24 19:27:13';

$dt = new DateTime($dt);
$lt = new DateTime();

$dd = ( $lt->getTimestamp() - $dt->getTimestamp() ) / 3600;

echo $dt->format('Y-m-d H:i:s')." DateTime di partenza <br />";
echo $lt->format('Y-m-d H:i:s')." Local DateTime corrente <br /><br />";
echo $dd." differenza in ore <br /><br />";

if ($dd > 1) echo "Pratica non modificabile <br /><br />";
else         echo "ok alle modifiche <br /><br />";

$dt è la data nel database,
$lt è la data-ora locale corrente
$dd se maggiore di 1 supera l'ora

ho cercato di contenere al massimo il codice, dimmi se ti basta ed è chiaro

ps, non usare altri metodi per generare il timer corrente, per non incorrere in problemi legati ad UTC piuttosto che locale, a meno che non conosci la soluzione

da buoni ultimi, due esempi

2017-07-24 19:27:13 DateTime di partenza
2017-07-24 20:45:44 Local DateTime corrente

1.3086111111111 differenza in ore

Pratica non modificabile

----------

2017-07-24 19:48:13 DateTime di partenza
2017-07-24 20:46:36 Local DateTime corrente

0.97305555555556 differenza in ore

ok alle modifiche
 
Ultima modifica:

Discussioni simili