关于日期:时区偏移PHP

Timezone offset PHP

本问题已经有最佳答案,请猛点这里访问。

如何在php中确定某个日期和时间(例如:2018-09-30 09:00:00)是否使用冬季或夏季时间?
一旦我知道它是一个还是另一个,我如何在夏季添加1小时的日期?

例:

2018-08-10 08:00:00 - >这是夏天的时间,所以我需要加1小时 - > 2018-08-10 09:00:00

2018-08-10 23:30:00 - >添加1小时将是2018-08-11 00:30:00(在这种情况下,当天更改)

2018-12-12 08:00:00 - >这是冬天,日期保持不变。


日期格式化PHP中有一个I格式字符,如果是夏令时(夏令时),则返回1

1
2
3
4
5
6
7
$d1 = date('I', strtotime('2018-08-10 08:00:00'));
$d2 = date('I', strtotime('2018-08-10 23:30:00'));
$d3 = date('I', strtotime('2018-12-12 08:00:00'));

echo 'D1 is ' . ($d1?'summer':'winer') . 'time' . PHP_EOL;
echo 'D2 is ' . ($d2?'summer':'winer') . 'time' . PHP_EOL;
echo 'D3 is ' . ($d3?'summer':'winer') . 'time' . PHP_EOL;

输出:

1
2
3
D1 is summertime
D2 is summertime
D3 is winertime

工作代码:https://3v4l.org/DVjdn

然后,您可以使用Datetime::add()方法在需要时添加一小时。