.add days return 错误值
.add days return wrong value
我不知道为什么,但是当我从 FullCalendar
获取日期并尝试对其进行编辑时,似乎 moment.js
覆盖了所有已保存的日期。例如:
var date_start = $calendar.fullCalendar('getView').start.toDate();
date_start.setHours(0);
var date_end = $calendar.fullCalendar('getView').start.toDate();
date_end.add(1, "days");
console.log("start => " , date_start);
console.log("end => " , date_end)
返回结果:
start => Sat Oct 24 2015 00:00:00 GMT+0200 (ora legale Europa occidentale)
end => Sat Oct 24 2015 00:00:00 GMT+0200 (ora legale Europa occidentale)
这是错误的,因为结束日期应该是:
end => Sun Oct 25 2015 00:00:00 GMT+0200 (ora legale Europa occidentale)
注意:我将结束日期保存为开始日期,因为我正在使用这个 extension 并且当天实际上有一个错误,事实上资源被分成更多天到一天(阅读文档以获取更多详细信息)。
我的问题与 date_end.add(1, "days");
有关,实际上这段代码替换了从开始日期返回到 date_start
变量的所有日期。
您每次都使用相同的日期对象引用。
为第二个创建一个新对象
var date_start = $('#calendar').fullCalendar('getView').start.toDate();
date_start.setHours(0);
// create new instance
var date_end = moment(date_start);
date_end.add(1, "days");
console.log("start => " , date_start);
console.log("end => " , date_end.toDate());
我不知道为什么,但是当我从 FullCalendar
获取日期并尝试对其进行编辑时,似乎 moment.js
覆盖了所有已保存的日期。例如:
var date_start = $calendar.fullCalendar('getView').start.toDate();
date_start.setHours(0);
var date_end = $calendar.fullCalendar('getView').start.toDate();
date_end.add(1, "days");
console.log("start => " , date_start);
console.log("end => " , date_end)
返回结果:
start => Sat Oct 24 2015 00:00:00 GMT+0200 (ora legale Europa occidentale)
end => Sat Oct 24 2015 00:00:00 GMT+0200 (ora legale Europa occidentale)
这是错误的,因为结束日期应该是:
end => Sun Oct 25 2015 00:00:00 GMT+0200 (ora legale Europa occidentale)
注意:我将结束日期保存为开始日期,因为我正在使用这个 extension 并且当天实际上有一个错误,事实上资源被分成更多天到一天(阅读文档以获取更多详细信息)。
我的问题与 date_end.add(1, "days");
有关,实际上这段代码替换了从开始日期返回到 date_start
变量的所有日期。
您每次都使用相同的日期对象引用。
为第二个创建一个新对象
var date_start = $('#calendar').fullCalendar('getView').start.toDate();
date_start.setHours(0);
// create new instance
var date_end = moment(date_start);
date_end.add(1, "days");
console.log("start => " , date_start);
console.log("end => " , date_end.toDate());