Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Sommare due orari

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139

    Sommare due orari

    Salve devo sommare due orari in questo formato:

    $a = 13:11;
    $b = 12:54;

    $c= $a + $b;

    per quanto riguarda l'ora se supera 24 fa niente mentre mi interessa la gestione dei minuti una volta arrivato a 60.

    Qualcuno sa come si fa? forse bisogna convertire in questo modo ad esempio 13.11 + 12.54 in modo che diventano numeri decimali da sommare?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    ho risolto in questoo modo recuperando i primi due valori relativi all'ora e li ultimi due relativi ai minuti e poi ho risolto il problema dei minuti in caso si presentasse

    codice:
    $a = 13:11;
    $b = 12:54;
    
    $a1 = substr($a,0,2);
    $a2 = substr($a,3);
    $b1 = substr($b,0,2);
    $b2 = substr($b,3);
    $plus = 0;
    
    $minutitotali = $a2 + $b2;
    
    if ( $minutitotali > 60 ) {
    $minok = $minutitotali - 60;
    $plus = 1;
    } else {
    $mintok = $minutitotali;
    }
    
    $oratotale = $a1 + $b1 + $plus;


    Rimane però un problema se sommo l'ora ad esempio 07 + 01 non mi viene fuori 08 ma
    solamente il numero singolo 8, stessa cosa con i minuti, c'é un modo per sistemarlo?


    avrei trovato un modo ma mi puzza un pò mi sa che ho saltato qualcosa sopra comunque
    con la funzione strlen($oratotale) conto i caratteri se é 1 aggiungo uno 0 ad esempio

    codice:
    $test = strlen($oratotale);
    
    if ($test == 1){
    
    $oratotale = "0" . $oratotale;
    
    }

    ma non mi convince....

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    non va bene perché se sommo 03 +01 viene fuori 4 che sarebbero 40 minuti invece di 4 minuti, aggiungendo lo 0 risolverei ma se ad esempio se sommo 10+20 esce fuori 3 che in questo caso sono 30 minuti é corretto però viene aggiunto in automatico lo 0 e diventa 03 minuti e non va bene.

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    NO !

    Come dico a tutti coloro che usano le date in questo modo

    Usa la classe dateTime di php hai gia' tutto pronto.

    http://it2.php.net/manual/en/book.datetime.php

    $formato = "d/m/Y" ;
    $d1 = date_create_from_format($formato,$data1) ;

    a $d1 quindi viene assegnato l'oggetto di tipo dateTime di cui poi usi i metodi. Tale oggetto quindi ha tutti i metodi che ti servono per poter aggiungere, sottrarre , eseguire differenze etc....

    Gud Lac

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    puoi farmi un'esempio di somma tra i due orari ?

    codice:
    $a = 01:01;
    $b = 04:04;
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.