2017-02-06 2 views
0

Я пытаюсь получить имена последних трех месяцев, используя momentJS. Ниже приведен метод, следующий за мной:Непоследовательность в методе вычитания моментов

var currentDate = moment(); 
[currentDate.format('MMMM'), 
currentDate.subtract(1, 'months').format('MMMM'), 
currentDate.subtract(2, 'months').format('MMMM')] 

Это работает отлично, за исключением одной проблемы. Когда текущая дата в феврале. Список месяцев, которые я получаю, составляет: ['February', 'January', 'November'], когда последний элемент должен быть December. Правильно ли это, или я делаю что-то неправильно?

+1

Moment плохо спроектирован и мутирует все на своем месте. Вы вычитаете из currentDate дважды, который мутирует currentDate –

+1

, просто вычтите '1' тоже за третий месяц –

ответ

1

Это должно работать нормально

[moment().format('MMMM'), 
moment().subtract(1, 'months').format('MMMM'), 
moment().subtract(2, 'months').format('MMMM')] 

Когда вы

currentDate.subtract(1, 'months').format('MMMM') 

ваш currentDate становится = января

, а затем, когда вы делаете

currentDate.subtract(2, 'months').format('MMMM') 

это вычитать с двух месяцев с января, ноябрь