php strtotime拼图 - 夏令时?

Gil*_*man 2 php time strtotime dst

PHP代码

$t = strtotime( '2012-09-21T03:00:00+00:00 America/Chicago' );
$t2 =  date('c',$t);
echo $t2; 
Run Code Online (Sandbox Code Playgroud)

OUPUT

 2012-09-20T23:00:00-04:00
Run Code Online (Sandbox Code Playgroud)

芝加哥的时区是UTC-5,为什么我不能得到2012-09-20T22:00:00-05:00结果呢?

jim*_*imp 5

strtotime转换为Unix时间戳.date将使用当前时区将时间戳转换为字符串.首先尝试设置您的时区.

$t = strtotime( '2012-09-21T03:00:00+00:00 America/Chicago' );
date_default_timezone_set('America/Chicago');
$t2 =  date('c',$t);
echo $t2;
Run Code Online (Sandbox Code Playgroud)

  • +1.如果您没有设置默认时区,当前版本的PHP甚至会警告您. (3认同)