首先,需要看你的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);