PHP 时间 date,strtotime ,time计算1970开始的第几天

首先,需要看你的php时区配置参数

方式1:更改php配置文件,然后从其fast-cgi或者php调用的地方;

方式2:date_default_timezone_set('PRC');

date函数用于日期函数的获取,这里需要注意的,date得到的我们可以理解为概念时间,跟地区有关系。如北京时间和伦敦时间同一个时刻对应不同的时间有8小时的时差,北京时间早8小时。

time和strtotime得到的是物理时间,不存在和地区的联系,全球统一。

在项目有需要计算1970开始的第几天,这里就出现了问题。用时间秒去算的时候。

北京时间2016-01-14 4:00:00和2016-01-13 13:00:00得到同一个时间。

所以用strtotime转换到时间戳是内部有减去地区时间差的操作。

// 1970年1月1日至今的天数, 生成courseVideoGUID用, 截取16位
$currentTimeStamp = time();
p($currentTimeStamp);
$currentTimeStamp = ($currentTimeStamp - ($currentTimeStamp % 86400)) / 86400;
$currentTimeStamp = ($currentTimeStamp & 0xFFFF);
p($currentTimeStamp);

// 1970年1月1日至今的天数, 生成courseVideoGUID用, 截取16位
$currentTimeStamp = strtotime(date('Y-m-d H:i:s'));
p($currentTimeStamp);
$currentTimeStamp = ($currentTimeStamp - ($currentTimeStamp % 86400)) / 86400;
$currentTimeStamp = ($currentTimeStamp & 0xFFFF);
p($currentTimeStamp);

// 1970年1月1日至今的天数, 生成courseVideoGUID用, 截取16位
$currentTimeStamp = strtotime('2016-04-14 07:00:00');
p($currentTimeStamp);
$currentTimeStamp = ($currentTimeStamp - ($currentTimeStamp % 86400)) / 86400;
$currentTimeStamp = ($currentTimeStamp & 0xFFFF);
p($currentTimeStamp);

上一篇:使用sudo而无需输入密码的设置


下一篇:verilog学习笔记(2)_一个小module及其tb