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