我需要一些帮助。我们假设我有两个表:值和句点。在值表中,我保存每天和每小时的值。 格式如下:
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
如何重新生成新日期,这会在不丢失或重复日期的情况下连续生成日期?
感谢您的建议