相应地生成适当的日期时间夏令时

时间:2016-12-23 08:32:54

标签: php date datetime

我需要一些帮助。我们假设我有两个表:值和句点。在值表中,我保存每天和每小时的值。 格式如下:

ID | Value | Hour | PeriodID | Datetime

PeriodID引用其他表(句点),其中我以YYYY-mm-dd格式保存对象ID和本地日期。

在值表中,日期时间必须是例如CET的集中时间,因此我可以比较每小时的不同对象。

因此我有一个PHP GMT函数,它根据对象时区从给定日期(Y-m-d H:i:s)生成新的日期时间:

function gmt($date, $timezone) {
    $h = abs($timezone);
    $hm = $h * 60; 
    $ms = $hm * 60;
    $timestamp = strtotime($date);
    $gmt_timestamp = ($timezone >= 0) ? $timestamp+($ms) : $timestamp-($ms);
    return gmdate("Y-m-d H:i:s", $gmt_timestamp);
}

不幸的是,夏令时变化时我遇到了问题。在那种情况下我失踪了(2016-10-30 02:00:00)和重复小时(2016-10-31 01:00:00),这是错误的:

11910345 | 4.0 | 01.00 | 300476 | 2016-10-30 01:00:00
11910346 | 3.0 | 02.00 | 300476 | 2016-10-30 03:00:00
...
11910363 | 2.0 | 22.00 | 300476 | 2016-10-30 23:00:00
11910364 | 2.0 | 23.00 | 300476 | 2016-10-31 00:00:00
11910365 | 2.0 | 24.00 | 300476 | 2016-10-31 01:00:00
11910366 | 1.0 | 00.00 | 300477 | 2016-10-31 01:00:00

如何重新生成新日期,这会在不丢失或重复日期的情况下连续生成日期?

感谢您的建议

0 个答案:

没有答案