- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我遇到了一个令人沮丧的问题,我整夜都在努力解决这个问题。长话短说,如果纽约的某个人在下午 2 点创建了一个事件,我希望该事件显示为晚上 8 点,以便在欧洲查看日历的人(比方说他们提前六个小时)。
我的全日历配置如下所示:
function renderSchedule(timezone) {
var userSchedule = $('#user-schedule').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
timezone: timezone,
ignoreTimezone: false,
events: baseurl + "load_schedule",
editable: true,
defaultView: 'agendaWeek',
firstHour: 8,
allDayDefault: false
}
我确实有更多选择,但这些应该足以解决这个问题。如文档中所述,fullcalendar 通过 GET 传递一个 URL,如下所示:
mysite.com / my_page / load_schedule ? start = 2014 - 02 - 02 & end = 2014 - 02 - 09 & timezone = Europe % 2FChisinau & _ = 1391660233815
然后,我在后端执行以下操作,将MYSQL datetime
转换为ISO8601
$start = ($event['start']);
$end = ($event['end']);
$dateStart = new DateTime($start, new DateTimeZone($timezone));
$dateEnd = new DateTime($end, new DateTimeZone($timezone));
$dateStart - > setTimezone(new DateTimeZone($timezone));
$dateEnd - > setTimezone(new DateTimeZone($timezone));
$event['start'] = $dateStart - > format(DateTime::ISO8601);
$event['end'] = $dateEnd - > format(DateTime::ISO8601);
$newResult[] = $event;
$timezone
变量包含 Europe/Chisinau
,它当然是由 fullcalendar 本身传递的。
下面是上面返回给 fullcalendar 的内容:
[{"id":"5","start":"2014-02-06T14:10:00+0200","end":"2014-02-06T15:00:00+0200","title":"My title"}]
一切似乎都是正确的,但无论我如何尝试,事件都显示为下午 2 点。
注意 这很重要,我还没有提到这一点,但我正在将我选择的时区传递给 renderSchedule
函数。因此,即使我位于美国东海岸,我也希望能够传入欧洲时区并相应地呈现日历。
此外,我应该指出,我使用的是测试版 (2.0),它允许传递时区字符串(我正在这样做)并通过 moment.js 使用时刻
知道我在这里做错了什么吗?
最佳答案
我能够通过演示让它工作。我更新了您的日期格式以包含偏移量的冒号。此外,最新的 fullcalendar 1.6.4 稳定版没有时区变量。
$('#calendar').fullCalendar({
editable: true,
header : {
left:"prev,next",
center:"title",
right:"month,basicWeek,agendaWeek,basicDay,agendaDay"
},
ignoreTimezone: false,
events: [
{
start: "2014-02-06T14:10:00+02:00",
end:"2014-02-06T15:00:00+02:00",
title:"My title",
allDay: false
}
});
如果您使用的是测试版 2.0,那么您需要删除 ignoreTimezone,因为它不再是一个参数。
事实证明,问题出在后端处理日期的方式上。这是我解决这个问题的方法。
date_default_timezone_set($timezone);
$timestampStart = strtotime($mysql_start_date);
$timestampEnd = strtotime($mysql_end_date);
$local_time_start = $timestampStart + date('Z');
$local_time_end = $timestampEnd + date('Z');
$local_date_start = date('Y-m-d H:i:s', $local_time_start);
$local_date_end = date('Y-m-d H:i:s', $local_time_end);
$event['start'] = $local_date_start;
$event['end'] = $local_date_end;
关于javascript - FullCalendar 时区不在客户端修改时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21594825/
有没有办法在 FullCalendar 中动态更改事件模板? 更新。 我想要的是指定新的事件 html(例如在 eventRender 回调中)并使 FullCalendar 将其用于我的事件渲染。像
我正在使用 FullCalendar 组件,我需要为周末、周五和周六着色。 我已经按照这里的建议使用了以下内容: Can I set a different color for the weekend
我正在实现 fullcalendar 并在时区问题上苦苦挣扎。 这是代码: $('#calendar').fullCalendar({ //re-initialize the calendar
我希望 fullCalendar 在不重新加载页面的情况下重绘自身(所有结构和事件)。 场景: 我正在使用支持 Resource View 的 fullCalendar 补丁。 .对于一些用户操作,我
我想在同一页面上添加多个 FullCalendars(可选)以安排不同类型的事件并将信息保存在数据库中,但查看演示/示例代码,我似乎每页只能添加一个日历,因为它由 呈现。 .您能否让我知道是否有办法
我已将 FullCalendar 设置为接受 drop,确实如此。但是我用 revert:'invalid' 构造的可拖动对象似乎无法将 FullCalendar 上的日期识别为可放置的,并恢复回来。
我公司最近购买了 Full-Calendar Scheduler 插件。有没有正确的方法在代码中隐藏许可证 key ?对此有哪些好的做法? 最佳答案 你是对的,没有办法完全隐藏 schedulerLi
在 FullCalendar如何使资源可点击? 我已经检查了 API,但我看不到任何相关内容,我是否遗漏了什么? 我在找 resource-click -事件就像我们对事件一样? 最佳答案 在 res
我有额外的数据(在我的例子中是一个数字),它是通过一个 javascript 函数获得的——我想在每天的单元格中显示它。 例如 - 如果天数在右上角,我希望它显示在左上角 - 每天自动显示。 我看到有
我在单个页面上创建多个 fullcalendar,我想编写一个事件渲染回调,以便它可以从调用它的 fullcalendar 实例中读取选项,例如 minTime 和 maxTime,不知道如何做这个。
看起来默认值为 20 像素,但我希望将其提高,因此长度为 1 个时隙的事件将能够显示事件标题和正文。当前,当事件长度为 1 个时隙时,仅显示事件标题。 最佳答案 任何仍在寻找新版本答案的人。 在新版本
我正在尝试实现 this solution在 Fullcalendar 中“变灰”过去的事件,但我没有任何运气。不过,我不太精通 Javascript,所以我认为我犯了一些愚蠢的错误。 我已经将建议的
我使用 jQuery fullCalendar (http://arshaw.com/fullcalendar/docs/selection/unselectAuto/) 我使用这个日历的可选版本 (
这看起来非常简单,但我花了半天时间把头撞在墙上,试图弄清楚为什么我的全日历事件只显示在 77 像素,而单元格(月 View )的宽度似乎是 90 像素或更高。我曾尝试修改 fc-event css 规
我正在尝试在全日历中将时间格式更改为 24 小时制。 我试图找到它 here但我无法弄清楚。 这里的代码片段: jQuery('#calendar').fullCalendar({ heade
在月 View 中 fullcalendar 有一个很好的功能,可以在非全天事件的顶行显示开始时间。如果您不想在事件标题中提供更多详细信息,这可能很有用。 我想在月 View 中显示几个详细信息,例如
如何在 fullcalendar 中显示事件的描述? 我有具有标题和描述的事件。 那么如何显示描述呢? 最佳答案 当您添加标题和描述时,它将连接起来。 使用以下代码,您可以连接标题: eventRen
我正在尝试使用 FullCalendar 在网页上呈现 Google 日历中的事件。我想要开始日期/时间、描述和地点。 future 事件在一个 div 中,过去事件在另一个 div 中。 现在,我的
我正在尝试突出显示 FullCalender.io 中的选定日期(与当前日期类似)。 已关注 FullCalendar - Highlight a particular day in week vie
我是 FullCalendar 新手。在我的项目中,我需要显示带有时间范围的日历以及每天为每个培训中心分配的参与者。更准确地说,一天可以有很多个培训时段,由培训中心进行。因此,我想展示哪个培训中心分配
我是一名优秀的程序员,十分优秀!