2017-01-06 2 views
0

Я работаю с momentjs, я получаю правильный объект, но когда я пытаюсь сохранить его на месяц вперед, я попытался вычесть месяцы, которые отлично работали для других месяцев, но когда я пытаюсь сохранить ' декабрь «У меня есть ошибка« неверная дата », очевидно, потому что она пытается сэкономить 13-й месяц, этого не существует.Momentjs, сохраняющий месяц вперед

полученный объект в том же методе

Object { day: "12", month: "01", year: "2017", formatted: "12-01-2017", momentObj: Object } 

Когда я пытаюсь сохранить в том же методе

Object { uid_date: "killerengel_12-02-2017", name: "task1" date: "12-02-2017"} 

Что я использую, чтобы сохранить:

let chosenDate = moment(task.date).utc().format('DD-MM-YYYY'); //this gives me a month ahead 

Object { day: "30", month: "12", year: "2017", formatted: "30-12-2017", momentObj: Object } 

Object { uid_date: "killerengel_Invalid date", name: "task2", date: "Invalid date" } 
+2

не уверен, что если momentjs соответствует родной JavaScript, но пресловутый недостаток делать раз/даты в JS, что месяцы равны нулю основе, а все остальное один на основе – deweyredman

+0

что 'задача. date'? вы используете настройку локализации в momentJS? – haxxxton

+0

@deweyredman Я чувствую себя глупо, я использовал отформатированный и работал, НО, как вы сказали, оно основано на нуле, поэтому, когда я, вероятно, найду некоторые другие ошибки, когда я попытаюсь выполнить вычисления, используя строки дат и MomentJS (например, знаете, какая дата предшествует, но я могу манипулировать строками, чтобы сделать это). Btw Я использую jkuri/ng2-datepicker, который не основан на нулевом значении, я думал, что ошибка была с момента, поэтому я спрошу его, не приведет ли она к другим ошибкам. В любом случае я должен удалить этот вопрос или подождать и модератора, чтобы закрыть его? Я не знаю, что я здесь новый, это был мой первый вопрос. –

ответ

3

@deweyredman прав , Для функции JavaScript Date(), январь равен 0, а декабрь - 11. Это похоже на то, что массивы начинаются с 0 для их индексации. Считаете ли вы, что Moment.js работает одинаково?

var jan = new Date().setMonth(0); // NOT 1 for Jan. 
 

 
console.log(new Date(jan)); // returns 2017-01... 
 

 
var dec = new Date().setMonth(11); // NOT 12 for Dec. 
 

 
console.log(new Date(dec)); // returns 2017-12...

+0

Вы верны, см .: http://momentjs.com/docs/#/parsing/object/ - «Обратите внимание, что как момент (Array) и новая дата (год, месяц, дата), месяцы индексируются 0. " – user4893106

 Смежные вопросы

  • Нет связанных вопросов^_^