Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125

    Calcolo differenza orari

    Ciao a tutti, spero possiate aiutarmi.

    Ho una serie di campi in un form orario ed avrei necessità di calcolare la differenza in minuti tra gli orari inseriti nei vari campi e visualizzarli in ulteriori campi del form che sono vuoti.

    I campi del form sono 8 e si chiamano: A, B, C, D, E, F, G e H.

    Le differenze dovrebbero essere:

    F-E
    D-A
    G-F
    H-G
    H-A

    Grazie.

  2. #2
    ed in che formato inserisci gli orari?
    I DON'T Double Click!

  3. #3
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Originariamente inviato da artorius
    ed in che formato inserisci gli orari?
    Si scusa il formato è HH:MM oppure anche un formato più adatto se vuoi....

  4. #4
    va benissimo, basta che ne usi uno.

    se non ci sono secondi, basta che fai:

    codice:
    var difference = function(leftHour, rightHour){
    	if(!leftHour || !rightHour)
    		return null;
    	spt = leftHour.split(":");
    	var totLeft = parseInt(spt[0]) * 60 + parseInt(spt[1]);
    	spt = rightHour.split(":");
    	var totRight = parseInt(spt[0]) * 60 + parseInt(spt[1]);
    	return totLeft - totRight;
    }
    Quindi basta che chiami:

    codice:
    var  diff1 = difference(myFrom.F.value, myForm.E.value);
    var  diff2 = difference(myFrom.D.value, myForm.A.value);
    var  diff3 = difference(myFrom.G.value, myForm.F.value);
    var  diff4 = difference(myFrom.H.value, myForm.G.value);
    var  diff5 = difference(myFrom.H.value, myForm.A.value);
    I DON'T Double Click!

  5. #5
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Grazie, ma non è mi è chiaro.

    Questo è il codice:

    codice:
    <script language="JavaScript"> 
    <!-- 
    
    
    var difference = function(leftHour, rightHour){
    	if(!leftHour || !rightHour)
    		return null;
    	spt = leftHour.split(":");
    	var totLeft = parseInt(spt[0]) * 60 + parseInt(spt[1]);
    	spt = rightHour.split(":");
    	var totRight = parseInt(spt[0]) * 60 + parseInt(spt[1]);
    	return totLeft - totRight;
    }
    
    var  diff1 = difference(myForm.F.value, myForm.E.value);
    var  diff2 = difference(myForm.D.value, myForm.A.value);
    var  diff3 = difference(myForm.G.value, myForm.F.value);
    var  diff4 = difference(myForm.H.value, myForm.G.value);
    var  diff5 = difference(myForm.H.value, myForm.A.value);
    
    
    
    // -->
    </script>
    
    ....
    
    <form name="myForm" method="POST" ...>
    
    
    
    <input type="text" name="RISULTATO DIFFERENZA F-E" size="20">
    <input type="text" name="RISULTATO DIFFERENZA D-A" size="20">
    <input type="text" name="RISULTATO DIFFERENZA G-F" size="20">
    <input type="text" name="RISULTATO DIFFERENZA H-G" size="20">
    <input type="text" name="RISULTATO DIFFERENZA H-A" size="20">
    
    
    </form>
    
    ....
    Come richiamo all'inerno dei vari campi del form che si chiamano RISULTATO... il valore calcolato dalla funzione js ?

    Grazie-

  6. #6
    Dai un nome diverso a quei campi per cortesia...

    codice:
    <form name="myForm" method="POST" ...>
    
    
    
    <input type="text" name="RISULTATO1" size="20">
    <input type="text" name="RISULTATO2" size="20">
    <input type="text" name="RISULTATO3" size="20">
    <input type="text" name="RISULTATO4" size="20">
    <input type="text" name="RISULTATO5" size="20">
    Poi pensavo fosse chiaro:

    codice:
    var  diff1 = difference(myForm.F.value, myForm.E.value);
    var  diff2 = difference(myForm.D.value, myForm.A.value);
    var  diff3 = difference(myForm.G.value, myForm.F.value);
    var  diff4 = difference(myForm.H.value, myForm.G.value);
    var  diff5 = difference(myForm.H.value, myForm.A.value);
    
    myForm.RISULTATO1.value = diff1
    e così via.

    Comunque, devi mettere quelle operazioni in una funzione, e poi associarla ad un evento onclick di qualche pulsate.
    I DON'T Double Click!

  7. #7
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Scusa ma non sono pratico di javascript puoi spiegarmi meglio?

    Soprattutto quando parli di inserire quelle operazioni in una funzione, e poi associarla ad un evento onclick di qualche pulsate ...

    Grazie

  8. #8
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Non riesco a farla funzionare...:

    codice:
    <html>
    
    <head>
    <script language="JavaScript"> 
    <!-- 
    
    
    var difference = function(leftHour, rightHour){
    	if(!leftHour || !rightHour)
    		return null;
    	spt = leftHour.split(":");
    	var totLeft = parseInt(spt[0]) * 60 + parseInt(spt[1]);
    	spt = rightHour.split(":");
    	var totRight = parseInt(spt[0]) * 60 + parseInt(spt[1]);
    	return totLeft - totRight;
    }
    
    function Calcola()
    {
    
    	var diff1 = difference(myForm.F.value, myForm.E.value);
    	var diff2 = difference(myForm.D.value, myForm.A.value);
    	var diff3 = difference(myForm.G.value, myForm.F.value);
    	var diff4 = difference(myForm.H.value, myForm.G.value);
    	var diff5 = difference(myForm.H.value, myForm.A.value);
    	
    	myForm.RISULTATO1.value = diff1
    	myForm.RISULTATO2.value = diff2
    	myForm.RISULTATO3.value = diff3
    	myForm.RISULTATO4.value = diff4
    	myForm.RISULTATO5.value = diff5
        
    
    }
    // -->
    </script>
    
    </head>
    <body>
    
    <form name="myForm">
    
    A<input type="text" name="A" size="20">
    B<input type="text" name="B" size="20">
    C<input type="text" name="C" size="20">
    D<input type="text" name="D" size="20">
    E<input type="text" name="E" size="20">
    F<input type="text" name="F" size="20">
    G<input type="text" name="G" size="20">
    H<input type="text" name="H" size="20">
    
    
    
    
      
    F-E<input type="text" name="RISULTATO1" size="20" onClick="Calcola()">
    D-A<input type="text" name="RISULTATO2" size="20" onClick="Calcola()">
    G-F<input type="text" name="RISULTATO3" size="20" onClick="Calcola()">
    H-G<input type="text" name="RISULTATO4" size="20" onClick="Calcola()">
    H-A<input type="text" name="RISULTATO5" size="20" onClick="Calcola()">
    
    
    </form>
    
    </body>
    
    </html>

  9. #9
    uff hai ragione:

    myForm.NomeCampo non è corretto bisogna usare:

    document.myForm.NomeCampo

    Quindi diventa:

    codice:
    function Calcola()
    {
    
    	var diff1 = difference(document.myForm.F.value, document.myForm.E.value);
    	var diff2 = difference(document.myForm.D.value, document.myForm.A.value);
    	var diff3 = difference(document.myForm.G.value, document.myForm.F.value);
    	var diff4 = difference(document.myForm.H.value, document.myForm.G.value);
    	var diff5 = difference(document.myForm.H.value, document.myForm.A.value);
    	
    	document.myForm.RISULTATO1.value = diff1
    	document.myForm.RISULTATO2.value = diff2
    	document.myForm.RISULTATO3.value = diff3
    	document.myForm.RISULTATO4.value = diff4
    	document.myForm.RISULTATO5.value = diff5
        
    
    }
    I DON'T Double Click!

  10. #10
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    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.