Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    483

    Differenza tra TimeStamp

    Ciao a tutti... chiedo aiuto a qualkuno ke magari ha gia affrontato il mio problema... ho 2 time stamp... e avrei bisogno di una funzione che mi dica quanti giorni (se ci sono), ore (se ci sono), minuti(se ci sono) e secondi che dividono i due time stamp... qualkuno ke ha gia fatto qualkosa del genere ?
    ...ho trovato che per calcolare quanti giorni basta fare:

    il valore risultante dalla differenza dei due time stamp/(60*60*24)

    pero' io ho la necessità di scandire giorni-ore-minuti-secondi considerando che l'intervallo puo' essere cosi' breve da non avere ne giorni-ne ore-ne minuti ma solo secondi



  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    483
    mi auto rispondo... sono riuscito a trovare qualkosa grazie al mitico google... riporto il codice in caso serva a qualcun altro

    Codice PHP:
    <?php 
    /** 
     * La funzione calcola la differenza tra due date 
     * in formato UNIX TimeStamp 
     * restituendo in output i giorni, le ore, i minuti e i secondi 
     * di differenza (di default, restituisce i giorni) 
     */ 

    function fDateDiff($dateFrom$dateTo$unit 'd'

        
    $difference null
         
        
    $date1 $dateFrom
        
    $date2 $dateTo
         
        if( 
    $date1 $date2 ){ 
            return 
    null
        } 
         
        
    $diff $date2 $date1
         
        
    $days 0
        
    $hours 0
        
    $minutes 0
        
    $seconds 0
         
        if (
    $diff 86400 <= 0){ // Ci sono 86400 secondi in un giorno 
            
    $days $diff 86400
        } 
         
        if(
    $diff 86400 0){ 
            
    $rest = ($diff 86400); 
            
    $days = ($diff $rest) / 86400
             
            if(
    $rest 3600 ){ 
                
    $rest1 = ($rest 3600); 
                
    $hours = ($rest $rest1) / 3600
                 
                if( 
    $rest1 60 ){ 
                    
    $rest2 = ($rest1 60); 
                    
    $minutes = ($rest1 $rest2) / 60
                    
    $seconds $rest2
                }else{ 
                    
    $minutes $rest1 60
                } 
            }else{ 
                
    $hours $rest 3600
            } 
        } 
         
        
    //In quel unità restituire 
        //la differenza ? 
        
    switch(strtolower($unit)){ 
            case 
    'd'
                
    $partialDays 0
                
    $partialDays += ($seconds 86400); 
                
    $partialDays += ($minutes 1440); 
                
    $partialDays += ($hours 24); 
                
    $difference $days $partialDays
                break; 
                 
            case 
    'h'
                
    $partialHours 0
                
    $partialHours += ($seconds 3600); 
                
    $partialHours += ($minutes 60); 
                
    $difference $hours + ($days 24) + $partialHours
                break; 
                 
            case 
    'm'
                
    $partialMinutes 0
                
    $partialMinutes += ($seconds 60); 
                
    $difference $minutes + ($days 1440) + ($hours 60) + $partialMinutes
                break; 
                 
            case 
    's'
                
    $difference $seconds + ($days 86400) + ($hours 3600) + ($minutes 60); 
                break; 
                 
            case 
    'a'
                
    $difference = array ( 
                    
    "days" => $days
                    
    "hours" => $hours
                    
    "minutes" => $minutes
                    
    "seconds" => $seconds 
                     
    ); 
                break; 
        } 
         
        
    //Ritorno la differenza 
        
    if(is_array($difference)){ 
            return 
    $difference
        }else{ 
            return 
    round($difference); 
        } 
         
    }
    //FONTE: [url]http://www.masterdrive.it/showthread.php?t=9824[/url] 
    ?>

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Grazie ipnotic, non avevo mai visto una funzione precisa al secondo per la differenza tra date. Domani la provo.

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.