【发布时间】:2021-12-23 04:24:08
【问题描述】:
这是我的问题:
我们的服务器在一个延迟的日期运行;
$now = new \DateTime("now", new \DateTimeZone('Europe/Paris') );
意思是即使在法国实际上是下午 4 点,我们的服务器也会说现在是下午 2 点(或者可能是下午 6 点,我不记得方向......但我们有 2 小时的差异)。
不是php的原因,是我们服务器配置的原因。
当时钟改变并且我们几周前进入冬季时......差异从 2h diff 变为 1h diff。
这意味着我必须调整我的代码
从
$nowBeforeDelta = new \DateTime("now", new \DateTimeZone($gmt) );
$now = $nowBeforeDelta->sub(new \DateInterval("PT2H"));
到
$nowBeforeDelta = new \DateTime("now", new \DateTimeZone($gmt) );
$now = $nowBeforeDelta->sub(new \DateInterval("PT1H"));
这样我就可以根据服务器正确地接收小时...但是...您看到了我要去的地方...一旦夏季时间将再次来临...我将不得不再次更改。
所以,我的问题来了:给定特定日期,我是否有办法知道该日期是在冬季时间还是夏季时间?没有得到日期和时间...只是得到对冬季或夏季问题的答复?
【问题讨论】: