Visualizzazione dei risultati da 1 a 5 su 5

Discussione: differenza tra orari

  1. #1

    differenza tra orari

    Ciao...
    ho un problemino con l'uso del time
    mi spiego

    questo è lo script

    <?php
    setlocale(LC_ALL,"");
    echo setlocale(LC_ALL,"");
    $inizio=$_POST['inizio'];
    $fine=$_POST['fine'];
    echo "

    ora di inizio".$inizio."</p>";
    echo "

    ora di fine".$fine."</p>";
    $t_inizio=strtotime($inizio);
    echo "

    strtotime di inizio".$t_inizio."</p>";
    $t_fine=strtotime($fine);
    echo "

    strtotime di fine".$t_fine."</p>";
    $t_differenza=strtotime($fine)-strtotime($inizio);
    If ($t_differenza>3600)
    {
    $t_appo=$t_differenza-3600;
    $differenza=strftime("%H:%M:%S",$t_appo);
    } else {
    $differenza="00:".strftime("%M:%S",$t_differenza);
    }
    echo "

    strtotime di differenza".$t_differenza."</p>";
    echo "

    strftime di differenza".$differenza."</p>";
    $differenza =$t_differenza/3600;
    echo "

    in decimale ".$differenza."</p>";

    ?>

    praticamente quando faccio la differenza dei due orari il timestamp risulta corretto mentre se tento di visualizzarlo mi da sempre un ora in più (ecco perchè tolgo 3600 secondi).
    A questo punto ho messo un if che divide le due situazioni però vorrei capire se questa cosa ha senso oppure ho sbagliato da qualche parte.

    Qualcuno mi sa aiutare????

    vi allego anche lo scripts di inserimento

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Documento senza titolo</title>
    </head>

    <body>
    <form name="form1" method="post" action="orari.php">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td>inserire ora inizio </td>
    <td>
    <input type="text" name="inizio">
    </td>
    </tr>
    <tr>
    <td>inserire ora fine </td>
    <td>
    <input type="text" name="fine">
    </td>
    <td><input type="submit" name="Submit" value="Check"></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    Bye Arcy
    http://www.noisub.com

  2. #2
    Il perche' non lo so. dovrei controllare lo script. Script che mi pare eccessivamente complesso.

    Ti posto un funzioncina che conta le ore e volendo con una piccola modifica anche il delta dei giorni caso mai ci fossero. Vedi se ti serve:
    codice:
    Function conta_ore($start, $end) {
    
       $part = explode(":", $start);
       $arr = explode(":", $end);
    
       $diff = mktime($arr[0], $arr[1], 0,1,1,2004) - mktime($part[0], $part[1],0,1,1,2004);
    
       $tempo = floor($diff / (60*60)).":".(($diff / 60) % 60);
    
       return $tempo;
    }
    
    la puoi usare cosi':
    
    $partenza = '08:10';
    $arrivo = '14:30';
    
    echo "Partenza ore: $partenza - Arrivo ore: $arrivo 
    Durata del viaggio: ";
    echo conta_ore($partenza,$arrivo);

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Grazie mille
    come si dice dalle mie parti
    TE VANSI NA BIRA!!!
    Bye Arcy
    http://www.noisub.com

  4. #4
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    scusate se mi intrometto... ma non calcola i minuti! dove sbaglio? grazie...

  5. #5
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    niente, scusate... ritiro tutto
    quindi piero.mac
    TE VANSI DO BIRE...

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.