2016-04-09 6 views
1

Meine aktuelle Datumzeit ist 8. April 20.52, und ich bin mit diesem Code:Versuch ein zukünftiges Datum zu erstellen erstellt stattdessen ein vergangenes Datum

//get current time 
var now = new Date(); 

//get current time plus 6 hours in the future 
var future = new Date(now.getFullYear(), now.getMonth(), now.getDay(), now.getHours()+6, now.getMinutes(), now.getSeconds(), 0); 

//print result 
console.log(future.toLocaleString()); 

Das Ergebnis ist 4/6/2016, 2:52:43 AM. Die Zeit ist eigentlich richtig, aber der Tag geht irgendwie 2 Tage rückwärts. Was mache ich falsch?

Antwort

3

.getDay() gibt den Wochentag zurück (0-6).

Was Sie wollen, ist .getDate() stattdessen, die den Tag des Monats zurückgibt.


Wenn Sie eine Menge von Datum Manipulation tun, sollten Sie überprüfen Moment.js

Im Moment können Sie einfach tun:

var future = moment.add(6, 'hours'); 
+0

Dies wurde mich verrückt, macht es Sinn, jetzt. Die korrekte Methode sollte ".getDate()" sein, was semantisch eine Art verwirrend ist. Danke für das Heads-up! – andufo

Verwandte Themen