Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833

    Differenza tra campi numerici in ore,minuti,secondi

    Ciao a tutti.

    Volevo sapere se e' possibile calcolare la differenza in ore, minuti e secondi
    tra due date che pero' gestisco cosi':

    $datarmtjrn = substr($RMTJRNOUT, 44, 6);
    $orarmtjrn = substr($RMTJRNOUT, 50, 6);

    e ottengo 26092007 152152

    e devo calcolare la differenza con questi due campi

    $JRNDATAOUT = 28092007
    $JRNORAOUT = 123048

    E la differenza che dovrei ottenere e', con i dati dell'esempio, 45:04:54

    Avete qualche idea?

    Grazie ciao

  2. #2
    qui trovi tutto quello che ti serve per le operazioni con le date


    http://php.html.it/articoli/leggi/92...come-gestirle/



    ciao
    Ginko
    Il progresso scientifico ? www.cartagodelendaest.it

  3. #3
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298

    Re: Differenza tra campi numerici in ore,minuti,secondi

    Al volo scriverei questo, più o meno:

    Codice PHP:
    $diff=$JRNDATAOUT-$JRNORAOUT;
    $h=floor($diff/3600) ;
    $m=floor(($diff-($h*3600))/60);
    echo 
    $h.":".$m

  4. #4
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298

    Re: Re: Differenza tra campi numerici in ore,minuti,secondi

    Ho dimenticato i secondi, ma è semplice, basta una differenza...

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    $diff=$JRNDATAOUT-$JRNORAOUT;
    $h=floor($diff/3600) ;
    $m=floor(($diff-($h*3600))/60);
    echo $h.":".$m;
    Aspetta mi sono spiegato male, io devo ottenere la differenza di ore tra
    $JRNDATAOUT + $JRNORAOUT che e' 28092007 130051

    $datarmtjrn + $orarmtjrn che e' 26092007 152122

    Ma questi quattro campi campi non sono campi data e ora ma dei valori che estraggo
    io da una stringa.

    Ciao

  6. #6
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298
    Originariamente inviato da guarnieri
    Aspetta mi sono spiegato male, io devo ottenere la differenza di ore tra
    $JRNDATAOUT + $JRNORAOUT che e' 28092007 130051

    $datarmtjrn + $orarmtjrn che e' 26092007 152122

    Ma questi quattro campi campi non sono campi data e ora ma dei valori che estraggo
    io da una stringa.

    Ciao
    Non cambia nulla, concettualmente è sempre lo stesso meccanismo cambia solo il nome delle variabili tra cui calcolare la differenza...

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Cosi' non funziona, posto cosa ho scritto,

    $data1= "$giornoreader$mesereader$secreader$annoreader$ora reader";

    il valore di data1 e' = 26092007152122

    $data2= "$giorno2$mese2$sec2$anno2$JRNTIMEOUT";

    il valore di data2 e' = 28092007150220

    La differenza tra queste date in ore e' 47:36:26
    ma faccio cosi':

    $diff=$data2-$data1;
    $h=floor($diff/3600) ;
    $m=floor(($diff-($h*3600))/60);
    echo $h.":".$m;

    mi stampa 555555555:1

  8. #8
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298
    Originariamente inviato da guarnieri
    Cosi' non funziona, posto cosa ho scritto,

    $data1= "$giornoreader$mesereader$secreader$annoreader$ora reader";

    il valore di data1 e' = 26092007152122

    $data2= "$giorno2$mese2$sec2$anno2$JRNTIMEOUT";

    il valore di data2 e' = 28092007150220

    La differenza tra queste date in ore e' 47:36:26
    ma faccio cosi':

    $diff=$data2-$data1;
    $h=floor($diff/3600) ;
    $m=floor(($diff-($h*3600))/60);
    echo $h.":".$m;

    mi stampa 555555555:1
    Aspetta, credevo che que numero fossero i secondi tra le le date, non date semiformattate così.... :berto:

    Allora devi estrarre tutti i campi della data e usare mktime per trasformare la data in secondi (vedi funzione mktime) e dopo fare la differenza che abbiamo detto sopra...

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Se hai ancora un po di pazienza, ti chiedo due cose

    una perche' se stampo con mktime mi cambia il valore della data?

    print ''.$datareader.''; = 26/09/2007

    echo date ("m-d-Y", mktime ($datareader)); = 09-29-2007


    poi mi diresti come fare, perche' non ho capito, dovrei convertire la data1 e l'ora1, unirle poi convertire la data2 e l'ora2 convertire anche queste con mktime e fare il test.

    Sinceramente non come fare.

    Grazie comunque

  10. #10
    Utente di HTML.it L'avatar di Webmaster76
    Registrato dal
    Mar 2001
    residenza
    Torino
    Messaggi
    298
    Originariamente inviato da guarnieri
    Se hai ancora un po di pazienza, ti chiedo due cose

    una perche' se stampo con mktime mi cambia il valore della data?

    print ''.$datareader.''; = 26/09/2007

    echo date ("m-d-Y", mktime ($datareader)); = 09-29-2007


    poi mi diresti come fare, perche' non ho capito, dovrei convertire la data1 e l'ora1, unirle poi convertire la data2 e l'ora2 convertire anche queste con mktime e fare il test.

    Sinceramente non come fare.

    Grazie comunque
    perchè mktime vuole i parametri in questo ordine:

    int mktime ( int hour, int minute, int second, int month, int day, int year )

    quindi devi scambiare mese e giorno....

    Devi arrivare ad evere dalle tue stringhe tutti i campi per far funzionare mktime, una volta fatto questo sei a posto... e puoi calcolare i secondi corrispondenti a quella tot data...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.