如何显示 dst 自由时区偏移量?

How to show dst free timezone offset?

有一个显示时区偏移量的时区信息字段(例如 'UTC+1')。为此使用 'getOffset',但现在在夏令时,它返回同一时区的 'UTC+2'。

我的问题是如何检测是否启用了夏令时或如何获得夏令时的自由偏移量?

检查了 DateTimeZone 和 DateTime 文档,但没有找到任何内容。

您只能从 Date 对象中获取当前是否处于 DST 中的信息; DateTimeZone 从不 "is" 夏令时,它仅包含信息 日期进入夏令时时,因此它始终取决于特定的 Date 实例。在 Date class 上没有专门的方法,但它是可能的 date formatter:

echo 'Is DST: ', $date->format('I') ? 'yes' : 'no';