Php 时区偏移量

Php 时区偏移量,php,date,Php,Date,在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中,如何确定某个日期和时间(例如: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

输出:

D1 is summertime
D2 is summertime
D3 is winertime
工作代码:


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

如果您只有一个类似“2018-08-10 08:00:00”的字符串,那么这里就没有时区信息。您可以获得PHP环境当前使用的时区,但不清楚这是否是您所要求的。现在,也许你可以做一些大的假设,说X和Y之间的任何日期都是“夏季”。如果从字符串创建DateTime对象,这将非常容易。这不是批评,但我认为这使用了美国夏令时,对吗?我相信英国会在这之前或之后的几周内改变时间。不知道OP在哪里,但可能需要记住。答案不错,但我不知道格式选项:)这实际上并不是文章作者想要的。您的时间取决于服务器时区设置。夏令时的计算取决于服务器设置,而不是给定的日期时间字符串。@PatrickQ它取决于服务器的时区设置。为什么要取决于美国的时间?美国在世界上是一个特殊的地方吗?;-)@Sergej,当然这取决于服务器的时区。OPs datetime字符串不包含时区信息,所以不存在给定datetime字符串的设置。@JakubMatczak我是在问,不是在说。
D1 is summertime
D2 is summertime
D3 is winertime