php中关于冬夏时令切换引发的问题 您所在的位置:网站首页 美股冬季时令 php中关于冬夏时令切换引发的问题

php中关于冬夏时令切换引发的问题

2023-11-30 04:14| 来源: 网络整理| 查看: 265

各位客官,欢迎光临小弟网站

在国内由于没有冬夏时令之分,所以直接对时间戳进行加减,不会出现问题。但是在国外的一些地方会有时令之分。

假设北京时间2019年11月25日 12:00:00,对应的时间戳是:1574654400,照理说这个时间戳加上一天86400秒,理论上就是北京时间2019年11月26日 12:00:00,事实上确实如此,国内的话这么算确实没什么问题,但是如果是国外时区的话,直接加上86400秒可能会有问题。

为了弄清楚这个问题,我们先来了解一下什么是冬夏时令? 夏令时

夏令时,表示为了节约能源,人为规定时间的意思。也叫夏时制,夏时令(Daylight Saving Time:DST),又称“日光节约时制”和“夏令时间”,在这一制度实行期间所采用的统一时间称为“夏令时间”。

一般在天亮早的夏季人为将时间调快一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏时制的国家具体规定不同。目前全世界有近110个国家每年要实行夏令时。

冬令时

有夏令时就会有冬令时。高纬度和中纬度的许多国家在夏季到来前,把时针拨快一小时,新的时间就是夏令时,到下半季秋季来临前,再把时针拨回一小时,即形成冬令时。 [2] 

夏令时和冬令时的影响.

拿美国来说,美国各个地区的时间都不同,不像中国一样统一使用北京时间,美国一般以三月份第二个周日凌晨两点当成夏季的开始,十一月份第一个周日的凌晨两点当成冬季的开始。. 所以在每年的三月份第二个周日凌晨两点过后,时间就会往前 调快一个小时 ;同理,十一月份第一个周日把这一个小时 调回来。. 你也可以理解成美国那边,一年里面有一天只有23小时(夏天开始那一天),有一天有25小时(冬天开始那一天),其他时间每天都是24小时。. 所以你会发现,夏天的时候,中国的北京时间( 东八区 )与美国太平洋时区( 西八区 )的时差是 15 小时,而到了冬天却变成 16 小时.

代码体现

比如:1572764400(太平洋时间2019-11-03 00:00:00,单位:秒)

date_default_timezone_set('PST8PDT'); echo date('Y-m-d H:i:s',1572764400).PHP_EOL; echo date('Y-m-d H:i:s',1572764400+ 86400).PHP_EOL; date_default_timezone_set('Asia/Shanghai'); echo date('Y-m-d H:i:s',1572764400).PHP_EOL; echo date('Y-m-d H:i:s',1572764400+ 86400).PHP_EOL; 2019-11-03 00:00:00 2019-11-03 23:00:00 2019-11-03 15:00:00 2019-11-04 15:00:00 解决办法

代码中尽量直接使用php的函数进行时间的加减就不会有问题,不要使用86400这样的数字直对时间戳进行加减。

代码示例: date_default_timezone_set('PST8PDT'); echo date('Y-m-d H:i:s',1572764400).PHP_EOL; echo date('Y-m-d H:i:s',strtotime("+ 1 days",1572764400)).PHP_EOL; date_default_timezone_set('Asia/Shanghai'); echo date('Y-m-d H:i:s',1572764400).PHP_EOL; echo date('Y-m-d H:i:s',strtotime("+ 1 days",1572764400)).PHP_EOL; 2019-11-03 00:00:00 2019-11-04 00:00:00 2019-11-03 15:00:00 2019-11-04 15:00:00

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有