2016-08-02 31 views
2

ich diesen sehr einfachen Code haben, und es funktioniert manchmal aber auch andere Zeiten gibt es die komplette falsche Datum:Tage to Date in javascript/Typoskript gibt völlig falsches Datum Hinzufügen

addDays(date: Date, days: number): Date { 
    console.log('adding ' + days + ' days'); 
    console.log(date); 
    date.setDate(date.getDate() + days); 
    console.log(date); 
    return date; 
    } 

Hier ist ein Beispiel für die Ausgabe :

Funktioniert!

adding 7 days 
error-chart.component.ts:118 Tue Aug 02 2016 00:00:00 GMT+0200 (Vest-Europa (sommertid)) 
error-chart.component.ts:120 Tue Aug 09 2016 00:00:00 GMT+0200 (Vest-Europa (sommertid)) 

nicht mehr funktioniert:

adding 14 days 
error-chart.component.ts:118 Tue Aug 02 2016 00:00:00 GMT+0200 (Vest-Europa (sommertid)) 
error-chart.component.ts:120 Thu Mar 02 2017 00:00:00 GMT+0100 (Vest-Europa (normaltid)) 

springt irgendwie 2 Jahre

adding 14 days 
error-chart.component.ts:118 Thu Jul 07 2016 00:00:00 GMT+0200 (Vest-Europa (sommertid)) 
error-chart.component.ts:120 Thu Jun 14 2018 00:00:00 GMT+0200 (Vest-Europa (sommertid)) 

jetzt 4 Jahre!

adding 14 days 
error-chart.component.ts:118 Thu Jun 14 2018 00:00:00 GMT+0200 (Vest-Europa (sommertid)) 
error-chart.component.ts:120 Thu Apr 14 2022 00:00:00 GMT+0200 (Vest-Europa (sommertid)) 
+0

Es gibt eine ungezählte Menge von JS Datum Fragen. Bist du sicher, dass keiner von ihnen das beantwortet? – evolutionxbox

+0

@evolutionxbox Nun, ich habe die Antwort aus einer dieser Fragen kopiert und eingefügt. Aber immer noch eine Methode, die 10% der Zeit funktioniert ... – ganjan

Antwort

2

Sie haben ein Problem mit Typen. Wenn days 14 ist, wird es den 16. August korrekt wiedergeben. Wenn days jedoch "14" ist, wird es den 2. März liefern.

Lösung:

addDays(date: Date, days: number): Date { 
    console.log('adding ' + days + ' days'); 
    console.log(date); 
    date.setDate(date.getDate() + parseInt(days)); 
    console.log(date); 
    return date; 
    } 
+0

Typescript gibt diesen Fehler über 'Tage' zurück: 'Argument des Typs' Nummer 'kann nicht dem Parameter vom Typ' String 'zugewiesen werden. – Francesco