2016-12-23 4 views
1

Ich hoffe, eine Variable aus einem Textfeld ziehen, die wie "201442" gesendet werden würde drehen Sie es in Zeit 20:14:42 dann subtrahieren Sie 5 Sekunden für die Ausgabe 20:14 : 37. Bisher habe ich:Entfernen von 5 Sekunden aus einer Variablen in Javascript

<!doctype html> 
 
<html> 
 
<head> 
 
<meta charset="utf-8"> 
 
<title>-5</title> 
 
<script> 
 
var incomingtime = "0"; 
 
</script> 
 
<script> 
 
    function calctime(){ 
 
\t \t incomingtime = document.getElementById("inputtime").value; 
 
\t \t alert (incomingtime); 
 
    } 
 
</script> 
 

 
</head> 
 

 
<body> 
 
<input type="text" id="inputtime"/><input type="text" id="outputtime"/><br> 
 
<button onclick="calctime()">-5 Dat</button> 
 
</body> 
 
</html>

Was wäre der beste Ansatz? Die Eingabe in drei Abschnitte aufteilen und so rechnen? Oder gibt es eine einfachere Lösung? Wie würde ich anfangen, die ersten zwei Zeichen in eine Variable, dritte und vierte in eine Var, dann 5. und 6. in eine Var für Berechnungen zu werfen?

+1

Moment.js ist eine schöne Bibliothek für solche Sachen. http://momentjs.com/docs/#/manipulating/subtract/ – mhodges

+0

Konvertieren Sie die Eingabe in ein "Date" -Objekt, dann verwenden Sie 'd.setSeconds (d.getSeconds-5)' – Barmar

Antwort

1

ich denke, sollten Sie Ihre Zeichenfolge analysieren und Ihre Zeit in Datum setzen() Objekt, dann wird es einfacher sein, alle Berechnungen auf dem Zeitwert zu tun Sie es in der folgenden Art und Weise analysieren kann:

timeObj = new Date(0,0,0, 
    incomingtime.substring(0, 2), 
    incomingtime.substring(2, 4), 
    incomingtime.substring(4, 6)); 

Dann können Sie Ihre Werte mit den 'get'-Funktionen des Objekts ausführen. Wenn Sie den Wert ändern möchten, können Sie die Zeit einfach hinzufügen oder subtrahieren (in Millisekunden). Zum Beispiel, wenn Sie 5 Sekunden subtrahieren möchten, sollten Sie nur:

timeObj -= 5*1000; 
+0

Wenn Sie nicht zur Verfügung stellen ein ausführliches Codebeispiel, das sollte nur ein Kommentar sein. Wenn Sie genug Reputation haben, können Sie die Fragen anderer Poster kommentieren. – Barmar

+0

@Barmar was meinst du mit "detailliertes Codebeispiel", ich bin neu bei stackoverflow, also verstehe ich nicht, warum ich meine Antwort als Kommentar setzen soll. Ich gebe ein Beispiel für Code mit seiner Erklärung, also warum kann es nicht als Antwort betrachtet werden? –

+0

Sie haben den Code nach meinem Kommentar hinzugefügt. – Barmar

Verwandte Themen