php - 调度与夏令时

标签 php time calendar timezone utc

我正在用 PHP 编写日历/日程安排应用程序。现在,我会选择您希望事件发生的星期几和时间。我还询问时区并相应调整以获得格林威治标准时间的事件时间。

然后我将该时间存储为演出当天午夜的偏移量。这很好而且效果很好,但是当我达到夏令时时会发生什么?我不确定发生这种情况时该怎么办。另一个问题是并非所有国家/地区都有夏令时,所以我有点为难。

我在日历上显示这些事件,因此时间安排很重要。

最佳答案

处理夏令时真的很痛苦。

对于 future 的事件,您应该存储事件发生时的位置和本地时间,而不是 GMT 时间。这是因为有时政府会在夏令时开始和停止时发生变化(美国去年才发生这种情况),然后事件会在格林威治标准时间发生变化,但不会在本地时间发生变化。

然后,如果您需要在事件发生时通知,每天收集接下来 24-48 小时的事件,然后将它们的时间转换为 GMT。为此,您需要一个位置-时区数据库,例如 this one .获取事件发生时每个位置的 GMT 偏移量,并使用它来将时间转换为 GMT 时间,然后您就可以准确知道事件发生的时间。

关于php - 调度与夏令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/563053/

相关文章:

php - VHost 和 htaccess - 500 内部服务器错误

php - 将列添加到一个表中,该表是另一个表的 COUNT

java - 计算两个小时的字符串之间的差异

javascript - 在动态添加的行中突出显示所选字段会使它们消失

Java 日历总是显示同一时间

php - 我可以在 PHP 中创建没有 session 的购物车吗?

PHP 计算在许多列中包含相同值的 MYSQL 行

php - 高级时间戳计算(偶数行和奇数行总计)

python - 组合列表中离散和/或重叠的时间序列

SQL自连接+左外连接日历