찾다

 >  Q&A  >  본문

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

PRC 시간: 547052400

UTC 시간: 547084800

UTC와 PRC 시간 차이: 9시간


테스트됨, 1987-1 9 1991 사이의 차이점 날짜, UTC 및 PRC 시간은 9시간입니다.

php 버전은

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

Copyright (c) 1997-2017 The PHP Group

Zend 엔진 v3.1.0, 저작권 (c) 1998-2017 Zend Technologies


刘强刘强2130일 전1503

모든 응답(5)나는 대답할 것이다

  • 刘强

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

    질문을 깜빡했는데, 그 이유가 무엇인가요? 이 버그를 처리하는 방법은 무엇입니까?

    회신하다
    0
  • jesse

    우리는 동부 8구역에 있고 PHP 시간은 0구역부터 시작하므로 8시간의 차이가 있습니다. (PS: 저는 중학교 때 지리를 잘 배우지 못했습니다.) 해결책: 1. PHP 구성 파일 수정 2. date_default_timezone_set을 사용하세요.

    jesse · 2019-01-29 13:13:39
    刘强

    글쎄요, 8시간의 차이가 있는데, 여기서 PRC ​​East Eighth District와 UTC의 차이는 9시간이고 이는 연도(1987-1991)의 일부일 뿐입니다.

    刘强 · 2019-01-31 08:54:36
    唐润

    저도 이틀 전에 이 문제를 겪었고, 그룹에서 논의한 결과 일광 절약 시간제 때문이라는 대략적인 결론을 내렸습니다.

    唐润 · 2020-01-20 09:33:17
  • 취소회신하다