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);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM