我遇到了一个关于grails和js fullcalendar的奇怪问题。
我有用户有自己的时区存储在数据库中,例如ECT
当用户插入事件时,所有日期都以UTC格式存储。这是在Bootstrap中设置的:
TimeZone.setDefault(TimeZone.getTimeZone("UTC"))
我听说用UTC存储所有日期是个好主意。因此,当德国用户输入1.12.2012 08:00时,它存储在1.12.2012 07:00。
现在,当我想从数据库中显示这些值到日历时,时区不被fullcalendar(我设置ignoreTimezone: false)考虑,因此日期将超过json与2012-12-01 08:00+01:00,但其显示为08:00 am而不是07:00。我哪里做错了?这个问题快把我逼疯了。
您可以通过在javascript中手动添加事件来检查吗?我想问题是JSON格式。js中的parseISO8601函数期望你的对象是某种格式,所以如果你的格式不正确,那么你必须进行实验,看看什么是有效的。
引自fullcalendar网站
当为事件或事件源指定事件对象时,您可以指定一个IETF格式的字符串(例如:"Wed, 18 Oct 2009 13:00:00 EST"),ISO8601格式的字符串(例如:"2009-11-05T13:15:30Z")或UNIX时间戳。