有人可以告诉我DateTimeZone :: getOffset PHP函数如何工作吗?

Somega

我得到了以下代码行:

echo (new DateTimeZone('UTC'))->getOffset(new DateTime('now', new DateTimeZone('America/New_York')));

它返回零。但我希望它能返回UTCAmerica / New_York时区之间的时差

然后,我两次提供了相同的时区:

echo (new DateTimeZone('America/New_York'))->getOffset(new DateTime('now', new DateTimeZone('America/New_York')));

我希望它返回零,因为时区相同。但是现在返回-18000(这是America / New_YorkUTC之间的偏移量)。

文档中,它说getOffset()始终将偏移量返回给GMT(= UTC)。但是,为什么getOffset不是静态的?如果始终是相对于GMT的偏移量,为什么第一个构造函数中的时区起作用?

我知道DateTime类中还有另一个getOffset方法,该方法更易于使用。但是我想了解DateTimeZone类中getOffset方法如何工作。

时区的偏移量是与UTC的时差。时区的偏移量全年可能会变化,具体取决于DST生效和终止的时间。因此,您不能像那样获得时区的偏移量,因为它不是恒定值。您只能查询时区与给定时间的UTC偏移量这就是将DateTime对象传递给的对象getOffset:询问时区在给定时间内其偏移值是多少。例如:

echo (new DateTimeZone('America/New_York'))->getOffset(new DateTime), PHP_EOL;
echo (new DateTimeZone('America/New_York'))->getOffset(new DateTime('+6 months'));
-18000
-14400

如果要获取两个任意时区之间的偏移量差,请获取它们各自的UTC偏移量并减去它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有人可以告诉我一个简单的PagerSlidingTabStrip工作实现吗?

有人可以告诉我此python代码在哪里出错吗?

有人可以告诉我代码中的错误吗?

有人可以告诉我最后一个循环在做什么吗?

有人可以告诉我这个mips问题是什么意思吗?

有人可以告诉我为什么a:hover不起作用吗?

有人可以告诉我这是什么类型的吗?

有人可以告诉我svg中的<g>和</ g>吗?

Java的新手。有人可以告诉我这是否是正确的写作方式吗?

有人可以告诉我这段代码有什么问题吗

有人可以告诉我我的代码有什么问题吗?

我是React的新手,有人可以告诉我为什么会这样吗?

有人可以告诉我如何简化此代码吗?

有人可以告诉我点击网页上链接的Selense命令吗

有人可以告诉我是否可以从我的CLinfo日志中执行OpenCL吗?

有人可以告诉我如何在DIV中正确插入文本吗?

有人可以告诉我为什么我的actionListener for循环不起作用吗?

有人可以告诉我这个sql代码中的错误吗?

有人可以告诉我我的Type或linq查询出了什么问题吗

iOS的UIProgressView栏没有更新,有人可以告诉我原因吗?

有人可以告诉我这个正则表达式吗?

TextGeometry没有显示,有人可以告诉我为什么吗?

如何打印此图案?有人可以告诉我条件(如果声明)吗?

有人可以告诉我为什么我的if / else陈述不起作用吗?

有人可以告诉我如何计算select prepare语句的返回值吗?

有人可以告诉我此python代码有什么问题吗?

有人可以告诉我这张图片有什么问题吗?

有人可以告诉我我的代码有什么问题吗?[Python 2.7.1]

有人可以告诉我如何在游戏结束后显示按钮吗?