Das Hinzufügen / Abziehen von Tagen von einem Datum ändert das Jahr / Monat nicht korrekt

8

Wenn ich ein Datum habe, das 2011-01-02 ist und ich 7 days von diesem Datum subtrahiere, sollte es mir 2010-12-26 geben, aber stattdessen gibt es 2011-01-26 ?

Siehe JS unten, um mit dem Link zu bestätigen:

%Vor%

Ссылка

    
Amir 01.12.2010, 00:05
quelle

5 Antworten

20

Ich denke, du wolltest das: (funktioniert perfekt)

%Vor%

jsFiddle-Beispiel

    
Jacob Relkin 01.12.2010, 00:08
quelle
4

getDate() und setDate() beziehen sich jeweils nur auf den Monatstag des Datums. Um 7 days zu subtrahieren, möchten Sie dies tun:

%Vor%

Dies setzt den Tag des Monats auf den Tag des Monats minus sieben. Wenn Sie eine negative Zahl verwenden, wird auf den vorherigen Monat zurückgegriffen.

    
Gordon Gustafson 01.12.2010 00:13
quelle
2

.getDate () gibt nur den Tag des Monats zurück, und .setDate () setzt nur den TAG des Monats, nicht das Datum.

Versuchen Sie es

%Vor%     
simshaun 01.12.2010 00:16
quelle
0

Dies liegt daran, dass die Methode setDate nur angenommen wird um den Tag des Monats einzustellen

    
Gareth 01.12.2010 00:07
quelle
0

Ich habe ein Dienstprogramm geschrieben                 Date.prototypeDuration = subDuration;                 Funktion subDuration (a, b) {                     if ((typeof a === 'string') & amp; & amp; (typeof b === 'nummer')) {                        if ((a === "Add") || (a === "Sub")) {                          subdur.call (dies, a, b)                        }sonst{                          falsch zurückgeben;                       }                     }

%Vor%     
Gaurav 05.02.2016 16:14
quelle

Tags und Links