加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何在PHP的DateTime中为Leap Seconds启用完整的UTC支持?

发布时间:2020-12-13 16:49:19 所属栏目:PHP教程 来源:网络整理
导读:我想用 Leap Seconds做一些DateTime计算,但它很早就停止了,因为我无法告诉DateTime我的意思: ### June 30,2012 at 23:59:60 UTC ###$leap = new DateTime('2012-06-30T23:59:60UTC');var_export($leap); 输出: DateTime::__set_state(array( 'date' = '201
我想用 Leap Seconds做一些DateTime计算,但它很早就停止了,因为我无法告诉DateTime我的意思:

### June 30,2012 at 23:59:60 UTC ###

$leap = new DateTime('2012-06-30T23:59:60UTC');
var_export($leap);

输出:

DateTime::__set_state(array(
   'date' => '2012-07-01 00:00:00','timezone_type' => 3,'timezone' => 'UTC',))

我无法为去年的UTC闰秒创建一个DateTime(也不是我尝试过的其他闰秒).我想知道DateTime是否支持闰秒,我认为它支持UTC,但可能不支持闰秒,所以只支持GMT?

解决方法

UNIX时间不知道闰秒.就其而言,每天恰好包含86,400秒,并且恰好偶尔跳过或重复一秒钟. (这在很大程度上是必要的,因为闰秒没有提前完全安排.如果在UNIX时间内计算闰秒,则UNIX时间与人类可读日期/时间之间的“映射”将随着闰秒的宣布而不可预测地改变.)

由于其日期/时间原语都基于UNIX时间,因此PHP也不能轻易表示闰秒.它们实际上是看不见的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读