php中关于冬夏时令切换引发的问题
各位客官,欢迎光临小弟网站
在国内由于没有冬夏时令之分,所以直接对时间戳进行加减,不会出现问题。但是在国外的一些地方会有时令之分。
假设北京时间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
php中关于冬夏时令切换引发的问题相关推荐
- 搜狗上线海外权威健康搜索 支持中英双语一键切换
2018年4月25日,搜狗搜索交出利好财报成绩单的同时,升级全球权威健康信息搜索,再度发力"人工智能+健康"赛道.在"全球权威健康信息问搜狗--搜狗搜索权威健康信息发布会 ...
- IOS开发中UIBarButtonItem上按钮切换或隐藏实现案例
IOS开发中UIBarButtonItem上按钮切换或隐藏案例实现案例是本文要介绍的内容,这个代码例子的背景是:导航条右侧有个 edit button,左侧是 back button 和 add bu ...
- kali查看python版本-kali中python版本的切换方法
kali中python版本的切换方法 如下所示: update-alternatives --config python 一条简单的命令,如下图所示: 以上这篇kali中python版本的切换方法就是 ...
- layui轮播图切换会有跳动_Layui中轮播图切换函数说明
### Layui中轮播图切换函数说明 ### ##### 官方文档 [链接][Link 1] ##### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdG ...
- Maven的一些资源(配置方法、idea中toggle offline mode:切换脱机模式、idea中Toggle ‘Skip Tests’ Mode、 Dependencies 出现红色波浪线)
Maven的一些资源以及常见问题 配置方法 https://www.cnblogs.com/csyzlm/p/11660710.html idea中toggle offline mode:切换脱机模式 ...
- Android中实现“程序前后台切换效果”和“返回正在运行的程序,而不是一个新Activity”...
ANDROID 一.首先是返回正在运行的程序,而不是新的ACTIVITY. 多网上关于 通知栏的例子都是打开一个新的Activity,代码也很多. 根据那些代码如下 public void s ...
- 实现表格中的el-switch 开关切换
一.目的: vue项目 实现表格中的el-switch 开关切换请求后台接口,请求成功则开启成功,请求失败则处于关闭状态 二.实现步骤: 1.html部分: <template slot-sco ...
- linux如何切换任务,linux 0.11中简单的任务切换中遇到的问题
linux 0.11中简单的任务切换中遇到的问题 发布时间:2012-03-04 09:49:45来源:红联作者: 最近在学习linux0.11,用的是赵迥博士的一本书,其中有一个模仿Linus 当年 ...
- Unity中使用软连接快速切换平台
Unity中使用软连接快速切换平台 Unity会把所有的资源在不同平台下进行不同的设置, 且每次切换平台都需要重新计算, 在大型项目中, 由于资源很多, 切换的成本比较高, 可能动不动的就是几十分钟, ...
最新文章
- ASP.NET获得客户端浏览器语言设置(Get the Language setting of browser by ASP.NET)
- MySql中truncate,delete,drop的异同点
- C语言的atoi和C++的to_string
- Visual Studio 2015打开ASP.NET MVC的View提示“Object reference not set to an instance of an object“错误的解决方案
- 【机器人学习】机器人轨迹规划A※算法代码
- IEC 62368认证测试项目
- cad工具箱详细讲解_AutoCAD学院派工具箱(XCAD)使用教程(图文解说)
- oppo9s刷机教程_OPPO R9s刷机教程_OPPO R9s卡刷升级更新官方系统包
- 【码学堂】教师如何在码学堂上组织教学活动?
- 国内比较好的云服务提供商有哪些?
- 【译】Scheduling Tasks
- 左神讲算法——超级水王问题(详解)
- (八)博客详情页面(内容排版typo.css)插件集成
- Android高德地图点击大头针更换大头针图片
- poi 导出 word 表格样式
- mc服务器怎么回到床的位置,《我的世界》MC床的功能居然跟这四个指令有关系?很多人不知道!...
- 宝典:10分钟46个细节看透男人心(zt)
- 选择java版本_新手上路之如何选择Java版本
- 淘宝芝麻信用分提升方法技巧
- CS5266设计TYPEC转HDMI带PD和USB3.1数据传输USB-C扩展坞方案