Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Differenza fra 2 orari
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • M
      max85 User • ultima modifica di

      Differenza fra 2 orari

      Salve devo effettuare la differenza fra 2 orari differenti (orario
      conferma - orario iscrizione). Ho provato con "strtotime" ma non
      riesco. Qualcuno può darmi una mano?

      Il primo orario lo prelevo dal database.

      $tempoiscrizione=strtotime($utente["ute_tempiscr"]);

      Il secondo rappresenta l'ora attuale nella pagina
      $tempconferma=strtotime(date("H:i:s"));

      $differenza=$tempconferma-$tempoiscrizione;
      Se stampo $differenza nel formato date() nn mi esce la differenza esatta. Dove sbaglio? Grazie.

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • S
        senamion User Attivo • ultima modifica di

        Hai usato correttamente il formato timestamp che in pratica contiene il numero di secondi passati dall'1/1/1970 e quindi è facilmente confrontabile.
        Però:

        1. in $tempconferma metti solo ora minuti e secondi che non è un valore valido per strototime. Se vuoi il timestamp di adesso è semplicemente:
          $tempconferma = time();
        2. verifica cosa hai in $utente['ute_tempiscr'], anche questo valore deve essere in un formato compatibile con strtotime (http://it2.php.net/manual/it/function.strtotime.php)
        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • B
          batmark User • ultima modifica di

          Ciao,

          innanzitutto potresti provare ad usare la funzione time() al posto di strtotime(date("H:i:s")); così hai già un valore intero...

          In questo modo hai la differenza tra le due date in termini di secondi, se vuoi trasformarli in giorni, ore e minuti devi far fare i calcoli alla funzione; se usi date() e gli passi $differenza ottieni una nuova data che, se ho capito bene, non c'entra con quello che vuoi fare tu.

          Esempio:
          $minuti = floor($differenza/60);
          $ore = floor($differenza-($minuti*60))/3600
          e così via...

          Ciao

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • M
            max85 User • ultima modifica di

            Ho cambiato il campo in int, in modo da assegnarli temp.

            $tempconferma =time();

            $tempoiscrizione=time($utente["tempiscr"]);

            $differenza=$tempconferma-$tempoiscrizione;

            print(date("G:i:s", $differenza));
            Ma non funziona.

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • M
              max85 User • ultima modifica di

              Dovrei calcolare il tempo di iscrizione ad una newsletter, se l'utente non conferma l'iscrizione entro 24 ore verra cancellato dal db.

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • B
                batmark User • ultima modifica di

                @Max85 said:

                print(date("G:i:s", $differenza));

                Questa istruzione ti dice quanto tempo è trascorso dalla mezzanotte del 01/01/1900.

                Il calcolo del tempo trascorso lo devi fare tu.
                Guardati l'esempio che ti ho fatto per capire cosa intendo.

                Inoltre, se stai usando MySQL come database, dovrebbero esserci delle operazioni per le date che forse ti possono essere utili.
                Se ho un pò di tempo le cerco e te le posto... in ogni caso puoi cominciare a vederti la documentazione su MySQL (penso che anche altri database permettano di fare questo tipo di operazioni cmq).

                Ciao

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • S
                  senamion User Attivo • ultima modifica di

                  Se in $utente["tempiscr"] c'è già un time non devi richiamare la time, quindi:

                  $tempconferma =time();
                  $tempoiscrizione=$utente["tempiscr"];
                  $differenza=$tempconferma-$tempoiscrizione;

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • B
                    batmark User • ultima modifica di

                    Dai uno sguardo qui: http://database.html.it/articoli/leggi/935/funzioni-di-data-e-tempo-con-mysql/3/

                    Sono le operazioni sulle date che possono essere fatte direttamente da MySQL.
                    :ciauz:

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • M
                      max85 User • ultima modifica di

                      Grazie dell'aiuto. Ci sono riuscitoooo. Grazie ancora. Ciao.

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      Caricamento altri post
                      Rispondi
                      • Topic risposta
                      Effettua l'accesso per rispondere
                      • Da Vecchi a Nuovi
                      • Da Nuovi a Vecchi
                      • Più Voti