FullCalendar 可以更新为从网络浏览器到服务器忽略TimeZone 吗?
我正在使用与 Java Wicket Web 应用程序集成的 fullcalendar。
当网络浏览器的时区与服务器的时区不同时,我遇到日期问题。
例如:卡宴的网络浏览器 (UMT -3) 和巴黎的服务器 (UMT +1)。
我使用 fullcalendar 的“ignoreTimeZone=true”,因为我想保留网络浏览器用户时区的数据库日历。
当服务器初始化日历时:从巴黎发送到卡宴
服务器的事件发送如下事件
{"id":"53922","title":"0123456789","allDay":false,"start":"2011-01-06T09: 00:00.000+01:00"}
使用ignoreTimeZone=true 就可以了。日历上有 9 点。
为了验证,我用ignoreTimeZone=false进行了测试。我已将事件正确定位在 5 点钟位置 (9 - 4 = 5)。
当用户点击某一天创建新事件时,问题就来了!
对于 12 点时间,从网络浏览器发送的 JSON 值是正确的
allDay false 日期“2011-01-07T15:00:00.000Z” FeedbackFor“dayClick”
但是如果我想从ignoreTimeZone中获得等效的东西我更愿意 2011-01-07T12:00:00:000-03:00 格式或只是 2011-01-07T12:00:00.000
是否有可能有这种新的可能性?
预先感谢您的回复。
I'm using fullcalendar integrated with Java Wicket webapp.
I have a problem with date when timezone of webbrowser is different from timezone of server.
For example : webbrowser at Cayenne (UMT -3) and server at Paris (UMT +1).
I use "ignoreTimeZone=true" of fullcalendar because I want to keep in database calendar of timezone of the user of webbrowser.
When server initialize calendar : events sended from Paris to Cayenne
server send events like this
{"id":"53922","title":"0123456789","allDay":false,"start":"2011-01-06T09:00:00.000+01:00"}
With ignoreTimeZone=true it's ok. We have 9 o'clock in calendar.
To verify, I've tested with ignoreTimeZone=false. I have correctly event positioned at 5 o'clock (9 - 4 = 5).
Problem is coming when user click a day to create an new event !
For 12 o'clock time then JSON value sended from webbrowser is correct
allDay false
date "2011-01-07T15:00:00.000Z"
feedbackFor "dayClick"
But if I want to have equivalent from ignoreTimeZone I'd prefer to have
2011-01-07T12:00:00:000-03:00 format or just 2011-01-07T12:00:00.000
Is it possible to have this new possibility ?
Thanks by advance of your response.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我的解决方案始终是从客户端的 FullCalendar 使用 UNIX 时间戳或 UTC 日期格式从服务器发送事件。
首先,使用 jquery-json 插件从客户端发送的事件类似于
$.toJSON() 中序列化的事件将采用 UTC 格式
"yyyy-MM-dd'T'HH:mm:ss'Z'" 进行格式化
。然后你可以使用gson和jodatime来解析UTC格式的日期
其次,用
org.apache.wicket.datetime.markup.html.form.DateTextField
或org.apache.wicket显示日期.datetime.markup.html.basic.DateLabel
。要处理客户端的时区问题,请将这些添加到您的
应用程序
中。最后,从服务器查询并使用 UNIX 时间戳将事件发送到客户端的 FullCalendar。
生成的json是这样的
My solution is always send events form server with UNIX timestamp or UTC dateformat from the client's FullCalendar.
First, the events sent from client using jquery-json plugin are like
The event serialized in $.toJSON() will be formated with UTC fomat
"yyyy-MM-dd'T'HH:mm:ss'Z'"
.Then you can use gson and jodatime to parse the UTC format date
Second, display the date with
org.apache.wicket.datetime.markup.html.form.DateTextField
ororg.apache.wicket.datetime.markup.html.basic.DateLabel
.To deal with Client's Timezone problem, add these to your
Application
Finally, query from server and send events to client's FullCalendar with UNIX Timestamp.
Produced jsons are like this