我正在使用momentjs,我收到了正确的对象,但是当我尝试保存它时节省了一个月的时间,我试图减去其他月份工作正常的月份,但是当我试图保存“十二月”时我得到了错误,“无效日期”,显然是因为它试图保存第13个月,但不存在。
在同一方法中接收对象
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" }
答案 0 :(得分:3)
@deweyredman是对的。对于JavaScript Date()函数,January为0,12月为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...