[PHP] Differenza Date + Ore

Discussione in 'PHP' iniziata da Emix, 24 Luglio 2017.

  1. Emix

    Emix Utente Attivo

    Registrato:
    15 Febbraio 2010
    Messaggi:
    594
    Mi Piace Ricevuti:
    0
    Punteggio:
    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
     
  2. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.518
    Mi Piace Ricevuti:
    123
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    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: 24 Luglio 2017
  3. Emix

    Emix Utente Attivo

    Registrato:
    15 Febbraio 2010
    Messaggi:
    594
    Mi Piace Ricevuti:
    0
    Punteggio:
    16
    è perfetto. Grazie mille!
     
  4. Alex1990000

    Alex1990000 Nuovo Utente

    Registrato:
    26 Luglio 2017
    Messaggi:
    9
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    utilissimo
     
Sto caricando...

Condividi questa Pagina