Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    E' possibile che sbagli?? Calcolo intervallo di tempo

    Ciao gente, ho una funzione che mi mette a video il tempo impiegato ad eseguire una determinata operazione.
    Ho sempre pensato andasse bene, oggi mi han detto che ha dato alcuni risultati assurdi, ma non mi pare presenti problemi...
    Riuscite a darci un occhio??

    Ho un DB con l'orario di inizio e di fine dell'operazione, questa la dichiarazione:
    Codice PHP:
    CREATE TABLE `tabella` (
      `
    id_ugint(10NOT NULL auto_increment,
      `
    id_uint(10NOT NULL default '0',
      `
    id_gint(10NOT NULL default '0',
      `
    activeint(1NOT NULL default '0',
      `
    starttimestamp NOT NULL default CURRENT_TIMESTAMP,
      `
    endtimestamp NOT NULL default '0000-00-00 00:00:00',
      `
    scoreint(5NOT NULL default '0',
      
    PRIMARY KEY  (`id_ug`)

    con start ed end i miei valori.

    Ho poi la funzione che legge i valori dal DB e li passa a questa funzione:
    Codice PHP:
    function get_date_diff($startTime$endTime){
        
    $datestartTime date_create($startTime);
        
    $dateendTime date_create($endTime);

        
    $timestampstart strtotime($datestartTime->format("Y-m-d H:i:s"));
        
    $timestampend strtotime($dateendTime->format("Y-m-d H:i:s"));

        
    ## difference between the two in seconds
        
    $time_period = ( $timestampend $timestampstart );

        
    $days 0;
        
    $hours 0;
        
    $minutes 0;
        
    $seconds 0;

        
    $time_increments = array( 'g' => 86400,
        
    'h' => 3600,
        
    'm' => 60,
        
    's' => );

        
    ## will hold our values for ( day, minute, hour, seconds )
        
    $time_span = array();

        
    ## cycle through time_increments
        
    while( list( $key$value ) = each$time_increments )) {
        
    $this_value = (int) ( $time_period $value );
        
    $time_period = ( $time_period $value );

        
    # save value
        
    $time_span[$key] = $this_value;
        }

        
    $result "";
        
    ## show results
        
    while( list( $key$value ) = each$time_span )) {
            if(
    $value != 0){
             
    $result .= "$value$key ";
            }
        }
        return 
    $result;


    E poi faccio una echo get_data_diff(valore_start, valore_end);

    vedete qualche caso strano in cui potrebbe non funzionare?? :master:

    Grazie mille!
    TeO
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

  2. #2
    Effettivamente pare davvero sbagliare sui periodi brevi...

    Ho lanciato un'operazione alle "2009-06-16 15:52:22" ed è terminata alle "2009-06-16 15:53:00", ovvero meno di 1 minuti, ma la funzione segna 1 minuto e 4"...

    Dove sbaglio??
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

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.