Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Confronto tra intervalli di tempo

    Ciao a tutti

    come si fa in PHP ad eseguire un confronto tra intervalli di tempo, per stabilire se una differenza tra date supera una certa soglia?

    Ho provato ad usare la funzione date_diff($obj1, $obj2) che dovrebbe restituire un oggetto di tipo DateInterval, e fare il confronto con un altro oggetto di tipo DateInterval, ma qualcosa va storto, temo non si possa fare...


    Vi posto il codice:

    codice:
    $now = new \DateTime(); 
    $dataOraFine = new \DateTime(strtotime($this->dataOraFine));
    $dataScadenzaPrenotazioni = new \DateTime(strtotime($this->dataScadenzaPrenotazioni));
    $interval = new \DateInterval("P5M"); //sarebbe 5 minuti
    
    
     if ($now > $dataOraFine){
                $query = "UPDATE ... "
     }
     else if (date_diff($now, $dataScadenzaPrenotazioni) > $interval){
                $query = "UPDATE ... "
     }
    
       
    
    $this->db->runCommandQuery($query);

    Purtroppo, provando a fare un echo della seconda condizione, non mi mostra niente, mentre se cambio il maggiore con l'uguale mi mostra true, il che è assolutamente falso, perché le date sono molto distanti.

    (lo so, in teoria usando gli oggetti dovrei usare la classica notazione obj->diff(obj2) ma il risultato non cambia)

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    676
    date_diff ti ritorna un oggetti di tipo DateInterval, e non puoi comparare due DateInterval usando i normali operatori.
    Pe farlo però potresti prima convertire i due oggetti DateInterval in secondi, utilizzanfo il metodo DateInterval::format.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.