我正在使用 fullcalendar 插件,如果有人可以帮助我,我将不胜感激。
我通过 PHP URL 获取 json 事件。
像这样的东西:
$('#calendar').fullCalendar({ events: "/myfeed.php" });
因此,在返回事件的 php 页面中,我获得了 3 个 GET 参数:
start和end参数,表示UNIX时间戳中的日期。
到目前为止一切顺利,出现的问题是如果我更改操作系统上的时区。对于日历中同一天的相同查询,还可以更改这些参数的开始和结束。
最奇怪的是它只发生在 Mozilla Firefox 中。
在 Google Chrome 中,不会出现此问题。
e.g.
我已设置我的时区 ((UTC-04: 00) 圣地亚哥)
我指的是议程上的 2012 年 9 月 9 日,
firebug 向我显示这些参数正在发送到我的 php 页面
- _ 1347245953581
- 结束1347246000
- 启动1347159600
但如果我将时区从操作系统更改为 ((UTC-03: 00) 布宜诺斯艾利斯)
2012 年 9 月 9 日就议程进行磋商,
是现在发送到 PHP 页面的其他参数。
- _ 1347246338047
- 结束1347332400
- 启动1347246000
由于是同一天,因此发送其他开始和结束参数来检查事件。
全日历上有一个ignoreTimezone选项可能会有所帮助。我不确定它是否会影响传递给提要的开始/结束时间。
http://arshaw.com/fullcalendar/docs/event_data/ignoreTimezone/ http://arshaw.com/fullcalendar/docs/event_data/ignoreTimezone/
另一种选择是将传递的时间戳转换为 Date 对象,然后从 Date 对象获取本地数据并在查询中使用它。
在 JavaScript 中将 Unix 时间戳转换为时间 https://stackoverflow.com/questions/847185/convert-a-unix-timestamp-to-time-in-javascript
我知道这不是确切的答案,但它可能会对您有所帮助。
下面是一段 PHP 代码示例,用于将传递的时间戳转换为本地格式化日期:
$startts = $_REQUEST["start"]; // original timestamp
$startdt = new DateTime('now', new DateTimeZone('Europe/Oslo') ); // setup a local datetime
$startdt->setTimestamp($startts); // Set the date based on timestamp
echo $startdt->format('Y-m-d H:i:s'); // Output local date and time
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)