Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [Date] Conteggio ore

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    131

    [Date] Conteggio ore

    Ciao a tutti ho un problema con le date:
    mi spiego meglio

    ho 2 date

    es 21/04/2009 e 13/07/2009

    devo calcolare
    quante ore ci sono per ogni mese nell'intervallo di date

    qualche idea ??

    es
    in aprile avro' 21*24 ore
    in maggio 24*31 ecc fino al 13/07


    ciao a tutti

  2. #2
    Converti in unixtimestamp, sottrai e dividi per 3600.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    131
    no in quel caso avrei le ore totali tra l'intervallo
    io devo farlo per mese

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    131
    Risolto grazie ad un precedente post dove contava i mesi tra intervallo

    Codice PHP:


    $startDate 
    mktime(0,0,0,$mi,$di,$yi); //Contiene la sata d'inizio 
            
    $endDate mktime(0,0,0,$mf,$df,$yf); //Contiene la data di fine 
            
            
    $tmpDate $startDate//Variabile di Appoggio 
            
            //Creo un ciclo nel quale vada ad incrementare la variabile di appoggio e continuo fino 
            //A quando è maggiore della data di fine 
            
    while($tmpDate <= $endDate){ 
               
    //Stampo il mese ed anno 
              // echo date("n Y", $tmpDate)."
    "; 
               
    $anno = date("Y", $tmpDate);
               
    $bisestile =(($anno % 4 == 0 && $anno % 100 != 0) || $anno % 400 == 0);
               
               if(
    $tmpDate == $startDate){
                   
    $ore [date("Y", $tmpDate)][date("n", $tmpDate)]= abs($giorni_mese[date("n", $tmpDate)]-$di)+1;
               }else{
                       
    $ore [date("Y", $tmpDate)][date("n", $tmpDate)]= $giorni_mese[date("n", $tmpDate)];
               }
               if(
    $bisestile && date("n", $tmpDate) ==2){
                   if(
    $tmpDate == $startDate){
                      
    $ore [date("Y", $tmpDate)][2]= 29-$di+1;
                   }else{
                       
    $ore [date("Y", $tmpDate)][2]= 29;
                   }
               }
               
               
               
               //Incremento la data di appoggio 
               
    $tmpDate = mktime(date("H", $tmpDate),date("i", $tmpDate),date("s", $tmpDate), date("n", $tmpDate) + 1, date("j", $tmpDate), date("Y", $tmpDate)); 
                if(
    $tmpDate > $endDate)
                {
                       
    $ore [date("Y", $endDate)][date("n", $endDate)]= $df;    
                }
            } 
    $giorni_mese è un array con i giorni divi per mese

  5. #5
    Perchè fare il lavoro a mano quando il PHP offre tutto quello che serve?

    Codice PHP:
    <pre>
    <?php 

    $startDate 
    mktime(0004212009);
    $endDate mktime(0007132009);

    $date mktime(000date('m'$startDate) + 11date('Y'$startDate));

    $results = array();
    $results[date('Y'$startDate) . date('m'$startDate)] = date('j'$startDate) * 24;

    $realEndDate mktime(000date('m'$endDate), 1date('Y'$endDate));
    while (
    $date $realEndDate) {
        
    $results[date('Y'$date) . date('m'$date)] = date('j'mktime(000date('m'$date) + 10date('Y'$date))) * 24;
        
    $date mktime(000date('m'$date) + 11date('Y'$date));    
    }
    $results[date('Y'$endDate) . date('m'$endDate)] = date('j'$endDate) * 24;

    print_r($results);

    ?>

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    131
    Ottimo, grazie

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.