Visualizzazione dei risultati da 1 a 2 su 2

Discussione: differenza tra date

  1. #1

    differenza tra date

    Ciao,
    il mio problema consiste nella differenza tra due date e la conversione del risulato in ore...il problema è che eseguo la differenza tra date dello stesso giorno non ho problemi...ma se eseguo la differenza tra 07/03/2006 7:00 e 06/03/2006 02:16:46 ho un risultato di 720 ore!

    il codice è il seguente:
    $dataO=ConvertData($array_ris[$i]["DATA_OPEN_GUASTO"]);
    $oraO=explode(":",$array_ris[$i]["ORA_OPEN_GUASTO"]);
    $dataC=ConvertData($array_ris[$i]["DATA_CLOSE_GUASTO"]);
    $x=str_replace(".",":",$array_ris[$i]["ORA_CLOSE_GUASTO"]);
    $oraC=explode(":",$x);
    if (empty($oraC[0])) $oraC[0]=0;
    if (empty($oraC[1])) $oraC[1]=0;
    if (empty($oraC[2])) $oraC[2]=0;
    $dataO=mktime($oraO[0],$oraO[1],$oraO[2],$dataO[1],$dataO[0],$dataO[2]);
    $dataC=mktime($oraC[0],$oraC[1],$oraC[2],$dataC[1],$dataC[0],$dataC[2]);
    $ris2=$dataC-$dataO;
    //$ore=$ris2/3600;

    for($ore=0; (($ris2-3600) > 0); $ris2 -= 3600,$ore++);
    for($min=0; ($ris2 > 0); $ris2 -= 60,$min++);
    $worksheet->write($i+1,25, $ore.":".$min, $aSinistra);//
    grazie
    .::C A R P E ^-^ D I E M ::.

  2. #2
    Utente di HTML.it L'avatar di grendy
    Registrato dal
    Aug 2003
    Messaggi
    338
    Ho trovato questo script che utilizza la funzione mktime(), vedi se può esserti utile in qualche modo.
    codice:
    <?php
    
    // carico la data da controllare nelle 3 variabili
    // puoi utilizzare date passate o future
    list($giorno, $mese, $anno) = explode("/","15/03/2003"); 
    
    // calcolo la differenza tra il timestamp della data definita e la data attuale
    // il risultato dovrò dividerlo per 86400 (il numero di secondi in un giorno)
    // e arrotondarlo per difetto con ceil (vedi ultima linea di codice)
    $giorni = ((mktime (0,0,0,$mese,$giorno,$anno) - time())/86400);
    
    // qui stampo giorni o giorno a seconda se la differenza è composta da 1 giorno o più giorni
    // funziona anche con i numeri negativi
    $pluraleosingolare = ((ceil(abs($giorni)>1)) or ceil($giorni)==0)?"giorni":"giorno";
    
    echo "tra la data di oggi e la data del $giorno/$mese/$anno la differenza è di ".ceil($giorni)." $pluraleosingolare";
    
    ?>
    «Sono le azioni che contano. I nostri pensieri, per quanto buoni possano essere, sono perle false fintanto che non vengono trasformati in azioni. Sii il cambiamento che vuoi vedere avvenire nel mondo». (Mahatma Gandhi)

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