考虑夏令时时存储重复日期
创建数据库来存储跨多个时区的重复日期的事件时,这一点至关重要考虑夏令时 (DST) 对数据的影响。当前从时区到 GMT 的转换方法可能不考虑 DST,可能会导致时间转换不正确。
一种建议的方法是包含“dst”字段来指示日期是否在 DST 期间输入。可以根据需要实现将时间调整一小时的方法。
但是,行业专家建议采用不同的方法。
以当地时间存储日期
以当地时间存储日期更适合未来的本地事件,尤其是重复发生的事件。此方法避免了 DST 影响 UTC 转换的问题,解决了“闹钟问题”,即由于 DST 转换而可能在错误的时间触发事件。
要有效存储此信息,请考虑包含以下字段:
计算 UTC 等效值
应根据时区数据库更新定期重新计算 UTC 等效值。制定订阅这些公告并相应更新数据库的计划非常重要。
回退过渡
当事件在回退过渡期间发生时 (当 DST 结束时),必须确定事件是在当地时间的第一次还是第二次出现时发生,或者
替代方法
另一种方法是使用以下步骤以 UTC 格式存储日期:
虽然此方法有效,但它有缺点:
以上是我们如何在数据库中存储重复日期,同时准确处理夏令时?的详细内容。更多信息请关注PHP中文网其他相关文章!