我确实让 fullcalendar 正常初始化。所以它代表当前日期。(午夜-> 午夜,1 天,1 小时时段)
从其他一些数据源我得到带有时间戳的数据。格式为“YYYY-MM-DD HH:mm”(作为字符串传输,无时区信息)
所以我将该字符串转换为一个时刻对象,并针对 fullcalendar.start 和 .end 进行测试以查看它是否在其中。
moment("2016-04-07 00:00") == $('#calendar').fullCalendar('getView').end
通过以下命令,这会导致错误
$('#calendar').fullCalendar('getView').end.format("YYYY-MM-DD HH:mm")
返回
"2016-04-07 00:00"
我也尝试与 diff 进行比较
moment("2016-04-07 00:00").diff( $('#calendar').fullCalendar('getView').end,"minutes")
返回
120
对 Chrome 开发工具中的 calendars.end 对象的一些研究表明,它在内部表示为
2016-04-07 02:00 GMT+0200
这对我来说看起来很奇怪。我在格林威治标准时间前 2 小时处于时区。所以它应该正确地说 2016-04-07 00:00 GMT+0200,不是吗?这也解释了为什么上面的差异测试导致了 120 分钟。
有人可以帮忙吗?我不知道转换问题来自哪里。我只使用没有时区信息的日期。如上所述,fullcalendar 在没有 gotodate 信息的情况下初始化,并显示从 00:00 到 00:00 的时间栏。那么为什么会有这个 2h 的差异呢?