2014-09-17 24 views
21

Chciałabym odjąć 7 dni od daty bieżącej, aby uzyskać sformatowana data YYYY-MM-DD przy użyciu moment.js bibliotekę.Moment JS - jak odjąć 7 dni od bieżącej daty?

Starałem się zrobić w ten sposób:

dateTo = moment(new Date()).format('YYYY-MM-DD'); 
    dateFrom = moment(new Date() - 7).format('YYYY-MM-DD'); 

    console.log(dateFrom); 
    console.log(dateTo); 

Ale wszystkie zwrócone wartości są takie same.

Jak mogę to rozwiązać?

Odpowiedz

48

mogą być:

dateTo = moment().format('YYYY-MM-DD'); 
dateFrom = moment().subtract(7,'d').format('YYYY-MM-DD'); 
+3

Warto również zauważyć, 'Moment (new Date()) === chwila()' – Timespace

2

Data Object, gdy lanego jest w milisekundach. tak:

dateFrom = moment(Date.now() - 7 * 24 * 3600 * 1000).format('YYYY-MM-DD'); 
+0

A co jeśli chciałbym przekazać coś podobnego dateTo - dateFrom? – redrom

+0

[ 'Date.getMilliseconds()'] (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Objets_globaux/Date/getMilliseconds) – Vinz243

+0

Podejście to nie jest bezpieczne dla dat w pobliżu letniego przejściami czasowych. Nie wszystkie dni są 24 godziny długości. –