【发布时间】:2016-11-18 16:21:14
【问题描述】:
我试图将选定的事件插入数据库,我注意到我在日历中选择的时间与传递给 AJAX 的时间不同。 select 回调传递的“开始”和“结束”日期与日历设置的时区不同。
我的日历设置:
$calendar.fullCalendar({
header: {
left: 'prev, today, next',
center: 'title',
right: 'agendaWeek, agendaDay'
},
timezone: 'Australia/Sydney',
defaultView: 'agendaWeek',
selectable: true,
selectHelper: true,
select: function(start, end) {
var startDate = new Date(start);
var endDate = new Date(end);
console.log(startDate);
console.log(startDate);
// ajax to insert event to DB
},
// other configurations
});
现在我转储的 startDate 和 endDate 看起来像:
Mon Nov 14 2016 08:00:00 GMT+0100
日历设置的不是Australia/Sydney,所以我在数据库中保存了错误的开始和结束日期。我有点觉得这是new Date() 的问题,它生成具有默认时区的给定时间戳,而不是日历设置的时间戳。
有人知道解决办法吗?
【问题讨论】:
-
您可能必须使用 UTC 来调整任何不同的地区:techrepublic.com/article/… - 您也可以查看 momentjs.com/timezone
标签: javascript fullcalendar fullcalendar-scheduler