2016-08-08 61 views
0

Ich arbeite an einer Pomodoro Uhr in Javascript.Abrufen & Einstellen von Datum Objekt

Ich bin ein wenig verwirrt durch die Date Obj. Gemäß dem folgenden Code ist die Idee, dass die "Session Timer" & "Break Timer" -Werte in einem globalen Obj gespeichert werden, so dass sie abgerufen werden können &/oder aktualisiert. Folgendes ist verwirrend ich jedoch:

// The following stores the current time 
// which makes sense. 
const meter = { 
    break : new Date(), 
    session : new Date() 
}; 
// However, when I set the minutes on the Date obj 
// the above break & session props are no longer 
// a Date obj, instead they are number. 
// So, I cant use the 'getMinutes()' 
const meter = { 
    break : new Date().setMinutes(5), // is a number, not Date anymore! 
    session : new Date().setMinutes(10) // is a number, not Date anymore! 
}; 

ich die Pause/Sitzungsnummern durch new Date() Methode übergeben konnte ein neues Datum zu schaffen, aber ich frage mich, wie würde ich den Timer (vor allem im Format [hr] erstellen: [min ]: [Sek]). Hätte ich etwas zu tun, wie jeder zweite folgt, bevor ich den Code aktualisieren:

let number = 1470650701308; // time in milliseconds as returned by methods (getMinutes(), getHours(), getSeconds()) 
let hours = 1470650701308/(1000 * 60 * 60); // ms * sec * min 
let minutes = 1470650701308/(1000 * 60); // ms * sec 
let seconds = 1470650701308/(1000); // ms 

So ist meine Frage wie man über die Zeit in Stunden/Minuten & immer Sekunden, so kann ich meine Uhr jede Sekunde aktualisieren?

Dank

Antwort

0

Die setMinutes Methode modifiziert das Objekt und gibt einen int.

versuchen Sie stattdessen:

const meter = { 
    break : new Date(), 
    session : new Date() 
}; 

meter.break.setMinutes(5); 
meter.session.setMinutes(10); 
+0

Dank, ist mir bewusst, diese (gemäß dem Code oben), jedoch, Im verwirrt darüber, wie die Stunden Ausgang/Minuten/Sekunden für den Timer auf dem Display – Kayote

+1

Ich denke, Sie könnten '$ {meter.break.getHours()} verwenden: $ {meter.break.getMinutes()}: $ {meter.break.getSeconds()}'? Warum sagen Sie in Ihrem Beispiel, dass diese Methoden die Zeit in Millisekunden zurückgeben? Nur die Setter tun das –

+0

Ah, guter Fang! Das hat es gelöst! Danke, in meiner Erkundung der Werte, muss ich falsch abgebogen sein und irgendwie die Annahme haben, dass der Rückgabewert von 'get ***()' Methoden ms ist. Würdest du bitte die Antwort reparieren und organisieren, damit ich sie für zukünftige Referenz akzeptieren kann. – Kayote