php strtotimeタイムゾーンの問題、年によってはUTCタイムゾーンとPRCタイムゾーンが9時間異なる場合があります
刘强
刘强 2019-01-29 10:33:31
0
5
1515
$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

中国時間:547052400

UTC 時間:547084800

UTC および中国時間差: 9 時間


テスト後、1987 年から 1991 年の日付の UTC 時間と中国時間の差は 9 時間です。

php のバージョンは

PHP 7.1.9 (cli) (ビルド: 2017 年 8 月 30 日 18:34:46) (ZTS MSVC14 (Visual C 2015) x64)

Copyright (c) 1997-2017 The PHP Group

Zend Engine v3.1.0、著作権 (c) 1998-2017 Zend Technologies


刘强
刘强

全員に返信(1)
刘强

質問するのを忘れてしまいましたが、その理由は何ですか? このバグにどう対処すればよいでしょうか?

いいねを押す +0
  • 返事 私たちは東第 8 地区にいますが、PHP の時間は第 0 地区から始まるため、8 時間の差が生じます (追記: 私は中学校で地理をよく勉強しませんでした)。 1. PHP設定ファイルを変更する 2. date_default_timezone_set を使用する
    jesse 著者 2019-01-29 13:13:39
  • 返事 まあ、8 時間の差がありますが、ここでは中国東部第 8 地区と UTC の差は 9 時間であり、これは 1 年の一部 (1987 ~ 1991 年) にすぎません。
    刘强 著者 2019-01-31 08:54:36
  • 返事 私も 2 日前にこの問題に遭遇し、グループで議論した結果、これはサマータイムが原因であると大まかに結論づけました。
    唐润 著者 2020-01-20 09:33:17
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート