FullCalendar-在数据库中保存时区的建议

FullCalendar-在数据库中保存时区的建议,fullcalendar,Fullcalendar,我想构建一个基于web的应用程序(php、js、mysql),它将包含fullcalendar。我不认为我需要时区支持,但我认为现在更好地实施它比以后更好 我搜索了一下,做了一些测试,但我想我需要一些关于数据库的建议。到现在为止,我还没有处理过时区信息 您建议如何将时区信息保存到数据库中? 我想: MySql列,时间戳(=UTC)如“1475764940”,时区如“+02”在单独的列中 或 DateTime中的MySql列(包含UTC信息)和单独列中的时区 或 谢谢大家! full

我想构建一个基于web的应用程序(php、js、mysql),它将包含fullcalendar。我不认为我需要时区支持,但我认为现在更好地实施它比以后更好

我搜索了一下,做了一些测试,但我想我需要一些关于数据库的建议。到现在为止,我还没有处理过时区信息

您建议如何将时区信息保存到数据库中? 我想:

  • MySql列,时间戳(=UTC)如“1475764940”,时区如“+02”在单独的列中

  • DateTime中的MySql列(包含UTC信息)和单独列中的时区


谢谢大家!

fullCalendar处理时区所需做的就是将时间存储为UTC,然后使用库处理时区

var tz = jstz.determine();
var timezone = tz.name();
然后,您可以将时区和事件url作为get请求中的参数一起传递

events: {
        url: "calendarManager.php?request=get&timezone=" + timezone + "&userid=" + userID,
}

然后,在calendarManager中,您可以处理将UTC时间转换为用户返回事件的时区的问题,只需确保插入和更新的事件以UTC格式发送到数据库,这可以很容易地使用所包含的来完成。

fullCalendar使用时区只需将时间存储为UTC,然后使用用于处理时区的库

var tz = jstz.determine();
var timezone = tz.name();
然后,您可以将时区和事件url作为get请求中的参数一起传递

events: {
        url: "calendarManager.php?request=get&timezone=" + timezone + "&userid=" + userID,
}

然后,在calendarManager中,您可以处理将UTC时间转换为返回事件的用户时区的问题,只需确保插入和更新的事件以UTC格式发送到数据库中,即可轻松完成此操作。

您好,Ryan,谢谢。你的回答很有帮助。听起来不错。如果这适合我的项目,我会过度思考。您建议mysql列使用哪种数据类型?DateTime还是另存为Unix时间戳?您有经验吗?有没有jstz检测不到用户时区的情况?你怎么处理这些?以服务器时区为例?我从来没有遇到过这个问题。jstz从用户设备获取时区,因此,除非有什么问题,否则我认为它会很好。如果禁用Javascript,我可以看到它不起作用,但很明显,您的日历也不起作用。我不认为服务器时间会有任何用处,但如果需要的话,它可能是一个后备方案,但这样时间就不准确了。将时区保存到cookie,甚至保存到用户配置文件,并比较、更新或验证时区(如果找到),这可能是一个更好的解决方案。你好,Ryan,谢谢。你的回答很有帮助。听起来不错。如果这适合我的项目,我会过度思考。您建议mysql列使用哪种数据类型?DateTime还是另存为Unix时间戳?您有经验吗?有没有jstz检测不到用户时区的情况?你怎么处理这些?以服务器时区为例?我从来没有遇到过这个问题。jstz从用户设备获取时区,因此,除非有什么问题,否则我认为它会很好。如果禁用Javascript,我可以看到它不起作用,但很明显,您的日历也不起作用。我不认为服务器时间会有任何用处,但如果需要的话,它可能是一个后备方案,但这样时间就不准确了。将时区保存到cookie,甚至保存到用户配置文件,并比较、更新或验证时区(如果找到了),这可能是一个更好的解决方案。