为了账号安全,请及时绑定邮箱和手机立即绑定

如何存储重复的日期,记住夏令时

如何存储重复的日期,记住夏令时

PHP
红糖糍粑 2019-07-06 16:12:38
如何存储重复的日期,记住夏令时我把事件存储在我的数据库里。我有“开始”和“结束”日期时间,“票证_开始”和“票证_结束”(用于票务销售实际开始/结束时,而不是实际事件的开始/结束)。到目前为止,我已经构建了一些方法来完成所有有趣的事情,比如在保存之前将日期/时间转换为GMT,然后返回到它们各自的时区显示。我将时区存储在varchar字段中,其值类似于“America/New York”。但是-现在我需要开始处理如果用户想要允许重复事件。我以前做过,也没什么大不了的,但从来没有跨越过多个时区。起初,我认为这没什么大不了的,但后来意识到-如果最初的开始日期是7月(例如),并且每个月都会重复一年,那么在某一时刻,夏令节约时间就会使它变得不同,这样从格林尼治时间开始的转换就会有不同的时间变化。一个月,当转换12:00时,它会将它更改为-5,下一个月,它会因为DST而将它更改为-4。我目前的想法是,我将存储一个‘DST’tinyint(1),以确定是否在DST期间输入了开始/结束日期,然后在必要时制定一个方法,将时间更改一个小时。但是-我想我会在这里问,也许这是一个“正常”的问题,或者是一个我没有想到的简单的事情。(cakephp 2.4.x)
查看完整描述

3 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

是否有一个好的方法来处理检查,看看日期是否过了,或者其他类似的简单的‘检查’?以前,如果将所有日期存储在UTC中,这很简单,因为我可以检查服务器时间。但现在,它似乎需要额外的步骤.。

查看完整回答
反对 回复 2019-07-06
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

如果存储下一个即时预测的UTC时间,则可以使用此时间来查询某个事件是否即将到来或是否已过。如果已传递,则可能希望在另一个表中为过去的事件编写新记录,然后将UTC时间更新为下一个重复的实例。

查看完整回答
反对 回复 2019-07-06
  • 3 回答
  • 0 关注
  • 444 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信