Sebastian: Problem bei Uhrzeit mit Nullen auffüllen

Hallo,

ich habe folgende Funktion

  
function createStartTime(){  
var input = document.getElementById('Uhrzeit').value;  
var timesplit = input.split(":");  
var hour = timesplit[0];  
var minute = timesplit[1];  
var time = new Date();  
time.setHours(hour-1);  
hour = time.getHours();  
if (hour.length<2) { hour = "0" + hour }  
if (minute.length<2) { minute = "0" + minute }  
document.form.startTime.value = hour + ":" + minute;  
}

Mit dieser will ich eine Stunde einer eingegebenen Uhrzeit abziehen und das Ergebnis in einem anderen Feld ausgeben.
Zusätzlich soll bei einer Eingabe in Form von 3:3 die fehlenden Nullen hinzugefügt werden, damit am Ende 03:03 ausgegeben wird.

Die Minuten Ausgabe funktioniert wie gewollt und setzt automatisch eine Null davor. Nur bei der Ausgabe der Stunde passiert dies nicht. Bei Eingabe von z.B. 4:4 wird 3:04 (ohne die Null vor der 3), bei 05:10 wird 4:10 ausgeben usw.

Woran liegt das, mit if (hour.length<2) { hour = "0" + hour } müsste das doch gesetzt werden.

  1. [latex]Mae  govannen![/latex]

    Hallo,

    ich habe folgende Funktion

    function createStartTime(){
    var input = document.getElementById('Uhrzeit').value;
    var timesplit = input.split(":");
    var hour = timesplit[0];
    var minute = timesplit[1];
    var time = new Date();
    time.setHours(hour-1);
    hour = time.getHours();
    if (hour.length<2) { hour = "0" + hour }
    if (minute.length<2) { minute = "0" + minute }
    document.form.startTime.value = hour + ":" + minute;
    }

    
    >   
    > Mit dieser will ich eine Stunde einer eingegebenen Uhrzeit abziehen und das Ergebnis in einem anderen Feld ausgeben.  
    > Zusätzlich soll bei einer Eingabe in Form von 3:3 die fehlenden Nullen hinzugefügt werden, damit am Ende 03:03 ausgegeben wird.  
    >   
    > Die Minuten Ausgabe funktioniert wie gewollt und setzt automatisch eine Null davor. Nur bei der Ausgabe der Stunde passiert dies nicht. Bei Eingabe von z.B. 4:4 wird 3:04 (ohne die Null vor der 3), bei 05:10 wird 4:10 ausgeben usw.  
    >   
    > Woran liegt das, mit if (hour.length<2) { hour = "0" + hour } müsste das doch gesetzt werden.  
    
    .  
      
    Füge mal Alerts ein:  
    ~~~javascript
    function createStartTime(){  
      var input = document.getElementById('Uhrzeit').value;  
      var timesplit = input.split(":");  
      var hour = timesplit[0];  
      var minute = timesplit[1];  
      var time = new Date();  
      alert("#"+hour+"#"+typeof hour+"#"+hour.length+"#");  
      time.setHours(hour-1);  
      hour = time.getHours();  
      alert("#"+hour+"#"+typeof hour+"#"+hour.length+"#");  
      if (hour.length<2) { hour = "0" + hour }  
      if (minute.length<2) { minute = "0" + minute }  
      document.form.startTime.value = hour + ":" + minute;  
    }
    

    und beachte den Typ im zweiten Alert. diesem Typ ist  die Eigenschaft length nicht bekannt.
    benutze also z.B. hour = time.getHours().toString();

    Cü,

    Kai

    --
    Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
    selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?
    1. Das hat geholfen, also wird durch die Datefunktionen keine auswertbare Zeichenkette zurückgegeben?

      Vielen Dank!