php - 2016年3月13日这一天不等于3600*24秒?
本文介绍了php - 2016年3月13日这一天不等于3600*24秒?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
在工作中发现一个bug:
我公司服务器的php的default timezone 和 timezone 都配置为 America/Los_Angeles;
时间戳 1457856000,
使用date()函数格式化后是2016-03-13 00:00:00;
但是为该时间戳加上3600*24-1秒后,使用date()函数格式化发现居然是2016-03-14 00:59:59;
而该日期的前一天和后一天则没有这种诡异的现象;
有人知道这是什么原因吗?
解决方案
/**
* 按照你说的时间,应该就是这个时区,
* 但是没什么问题,是你的计算过程出现什么没有注意到的地方, 还是不同的时区的关系
*/
date_default_timezone_set('Etc/GMT+8');
$timeStamp = 1457856000;
var_dump(date('Y-m-d H:i:s', $timeStamp));
var_dump(date('Y-m-d H:i:s', $timeStamp + 3600*24-1));
这篇关于php - 2016年3月13日这一天不等于3600*24秒?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文