Conversione da minuti a ore problema con script

di il
5 risposte

Conversione da minuti a ore problema con script

Un saluto a tutti,
ho questa funzione la quale mi converte i minuti inseriti in un campo di testo in ore/minuti

<script type="text/javascript">
<!--
function soloInteri(campo){
    var pattern=/^[0-9]{1,4}$/;
    var c=campo.value
    if(!c.match(pattern) || parseInt(c)>1000){
        alert('Inserire solo il numero di minuti')
        campo.value=0;
        campo.focus();
    }
}
//-->
</script>
Il problema è che dovrei inserire 1380 l'equivalente di 23 ore,
ma cosi come impostata la funzione non mi permette di superare i 999 minuti,
se li supero entra nel

if(!c.match(pattern) || parseInt(c)>1000)
e mi restituisce l'alert "Inserire solo il numero di minuti".
Mi dareste una mano a sistemare la funzione ?

Grazie mille

5 Risposte

  • Re: Conversione da minuti a ore problema con script

    Ma non ti basta modificare parseInt(c)>1000 ? E' chiaro che se il numero supera 1000 scatta l'alert.
  • Re: Conversione da minuti a ore problema con script

    Buongiorno a te e grazie mille per la risposta,
    ho impostato il valore a 2000 (ma già prima di aprire il thread)
    il problema è che scatta sempre l'alert
  • Re: Conversione da minuti a ore problema con script

    Mi par strano. Provando il tuo codice funziona.
    
    > pattern
    /^[0-9]{1,4}$/
    > z='1380'
    '1380'
    > if (!z.match(pattern) || parseInt(z) > 2000) { console.log(true)}
    undefined
    > z='2100'
    '2100'
    > if (!z.match(pattern) || parseInt(z) > 2000) { console.log(true)}
    true
    > z='abcd'
    'abcd'
    > if (!z.match(pattern) || parseInt(z) > 2000) { console.log(true)}
    true
    
  • Re: Conversione da minuti a ore problema con script

    Non so perchè non funzionasse,
    probabilmente qualcosa andava storto nel salvataggio, ho eseguito nuovamente il passaggio, ho salvato il tutto, ho ricaricato la pagina web e adesso funziona.

    Scusatemi tanto, ma sono stato poco attento.

    Lascio il codice per i posteri
    
    <script type="text/javascript">
    <!--
    function soloInteri(campo){
        var pattern=/^[0-9]{1,4}$/;
        var c=campo.value
        if(!c.match(pattern) || parseInt(c)>3000){
            alert('Inserire solo il numero di minuti')
            campo.value=0;
            campo.focus();
        }
    }
    //-->
    </script>
    
  • Re: Conversione da minuti a ore problema con script

    Ti posto due funzioni di utility per manipolare ore e minuti.
    
    function hoursToMinutes(time){
      if(time.indexOf(":")>0){
          var timer = time.split(':');
          var minutes = timer[1];
          var hours = timer[0];
          return Math.floor(hours)*60+Math.floor(minutes);
      }
      return false;
    }
    
    console.log(hoursToMinutes("13:10"));
    
    
    function minutesToHours(time){
      if(time!=''){
          time = parseInt(time);
          var hours = Math.floor(time/60);
          var minutes = time - (Math.floor(time/60)*60);
          if(String(minutes).length==1){
              minutes = '0'+minutes;
          }
          return hours+':'+minutes;
      }
      return null;
    }
    
    console.log(minutesToHours("790"));
    
Devi accedere o registrarti per scrivere nel forum
5 risposte