php strtotime 時區問題,部分年份 utc時區與PRC時區相差9小時
刘强
刘强 2019-01-29 10:33:31
0
5
1512
$timeStr='1987-5-4';
echo '测试时间:'.$timeStr;
echo PHP_EOL;
$prcTime=strtotime($timeStr);
echo 'PRC时间:';
echo $prcTime;
echo PHP_EOL;
date_default_timezone_set('UTC');
$utcTime=strtotime($timeStr);
echo 'UTC时间:';
echo $utcTime;
echo PHP_EOL;
echo 'UTC与PRC时间相差:'.(($utcTime-$prcTime)/3600).'小时';
echo PHP_EOL;

結果:

測試時間:1987-5-4

PRC時間:547052400

UTC時間:547084800

UTC與PRC時間相差:9小時


經測試,1987年-1991年的日期,UTC與PRC時間相差皆為9小時。

php版本是 

PHP 7.1.9 (cli) (built: Aug 30 2017 18:34:46) ( ZTS MSVC14 (Visual C 2015) x64 )

Copyright (c) 1997-2017 The PHP Group

Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies


#
刘强
刘强

全部回覆(1)
刘强

忘了提問題了,請問這是什麼原因造成的? 怎麼處理這個bug?

  • 回覆 我們在東八區,PHP時間是從0區開始的所以會差八個小時(PS:國中地理知識沒學好),解決方法: 1、修改PHP設定檔 2.使用date_default_timezone_set
    jesse 作者 2019-01-29 13:13:39
  • 回覆 嗯,是相差8小時,但是 這裡是PRC東八區與UTC 相差9小時,而且只是部分年份(1987年-1991年),
    刘强 作者 2019-01-31 08:54:36
  • 回覆 我前2天也遇到這個問題了,然後群組討論了下,大概得出結論是 因為 夏時制 導致的。
    唐润 作者 2020-01-20 09:33:17
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板