ホームページ  >  に質問  >  本文

php strtotimeタイムゾーンの問題、年によってはUTCタイムゾーンとPRCタイムゾーンが9時間異なる場合があります

$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


刘强刘强2111日前1489

全員に返信(5)返信します

  • 刘强

    刘强2019-01-29 10:34:30

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

    返事
    0
  • jesse

    私たちは東第 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
  • キャンセル返事