var dateObj = new Date();
var val = dateObj.getTime();
//86400 * 1000 * 3  Each day is 86400 seconds
var  days = 259200000;

val = val + days;
dateObj.setMilliseconds(val);
val = dateObj.getMonth() + 1 + "/" + dateObj.getDate() + "/" + dateObj.getFullYear();
alert(val);

Ich versuche, das aktuelle Datum zu übernehmen, drei Tage Millisekunden hinzuzufügen und den Datumsstempel 3 Tage später vom aktuellen Datum anzuzeigen. Zum Beispiel - wenn heute der 10.09.2012 ist, dann möchte ich, dass es der 12.10.2012 ist.

Diese Methode funktioniert nicht, ich habe die Monate und Tage weit weg. Irgendwelche Vorschläge?

35
dman 9 Okt. 2012 im 12:22

4 Antworten

Beste Antwort

Um die Uhrzeit hinzuzufügen, rufen Sie das aktuelle Datum ab und fügen Sie als Millisekunden die bestimmte Zeitdauer hinzu. Erstellen Sie dann ein neues Datum mit dem Wert:

// get the current date & time
var dateObj = Date.now();

// Add 3 days to the current date & time
//   I'd suggest using the calculated static value instead of doing inline math
//   I did it this way to simply show where the number came from
dateObj += 1000 * 60 * 60 * 24 * 3;

// create a new Date object, using the adjusted time
dateObj = new Date(dateObj);

Um dies weiter zu erklären; Der Grund, warum dataObj.setMilliseconds() nicht funktioniert, liegt darin, dass die Millisekunden-Eigenschaft von dateobj auf den angegebenen Wert (ein Wert zwischen 0 und 999) gesetzt wird. Das Datum des Objekts wird nicht in Millisekunden festgelegt.

// assume this returns a date where milliseconds is 0
dateObj = new Date();

dateObj.setMilliseconds(5);
console.log(dateObj.getMilliseconds()); // 5

// due to the set value being over 999, the engine assumes 0
dateObj.setMilliseconds(5000);
console.log(dateObj.getMilliseconds()); // 0
50
SReject 12 Feb. 2015 im 18:07

Wenn Sie Datumsberechnungen in Javascript durchführen müssen, verwenden Sie moment.js:

moment().add(3, 'days').calendar();
7
Shiny 3 März 2020 im 11:39

Verwenden Sie diesen Code

var dateObj = new Date(); 
var val = dateObj.getTime(); 
//86400 * 1000 * 3  Each day is 86400 seconds 
var  days = 259200000; 

val = val + days; 
dateObj = new Date(val); // ********important*********//
val = dateObj.getMonth() + 1 + "/" + dateObj.getDate() + "/" + dateObj.getFullYear(); 
alert(val);
6
wonea 6 März 2018 im 09:13

Versuche dies:

var dateObj = new Date(Date.now() + 86400000 * 3);

8
MiniGod 9 Okt. 2012 im 08:25