php strtotime拼图 - 夏令时?

PHP代码</ h2>

  $ t = strtotime('2012-  09-21T03:00:00 + 00:00美国/芝加哥'); 
$ t2 =日期('c',$ t);
echo $ t2;

</ code> </ pre>


OUPUT </ h2>

  2012-09-20T23:00:00-04  :00 
</ code> </ pre>


问题</ h2>

芝加哥的时区是UTC-5,为什么我不 得到 2012-09-20T22:00:00-05:00 </ code>?</ p>
</ div>

展开原文

原文

PHP CODE

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

OUPUT

 2012-09-20T23:00:00-04:00

QUESTION

Chicago's timezone is UTC-5, why don't I get 2012-09-20T22:00:00-05:00 as the result?

douzuqin3467
douzuqin3467 欢迎来到夏令时。这比EvanderHolyfield的支票簿还要多。
接近 8 年之前 回复

2个回答



strtotime </ code>转换为Unix时间戳。 date </ code>将使用当前时区将时间戳转换为字符串。 首先尝试设置您的时区。</ p>

  $ t = strtotime('2012-09-21T03:00:00 + 00:00 America / Chicago'); 
date_default_timezone_set(' America / Chicago');
$ t2 = date('c',$ t);
echo $ t2;
</ code> </ pre>
</ div>

展开原文

原文

strtotime converts to a Unix timestamp. date will convert the timestamp to a string using the current time zone. Try setting your time zone first.

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

dr2898
dr2898 +1。 如果您没有设置默认时区,PHP的当前版本甚至会警告您。
接近 8 年之前 回复



这并没有真正回答我的问题,但我做了以下修复:</ p>

  date_default_timezone_set('America / Chicago'); 
$ t = strtotime('2012-09-21T03:00:00 + 00:00');
$ t2 = date('c',$ t );
echo $ t2;
</ code> </ pre>

输出: 2012-09-20T22:00:00-05:00 </ code> </ p>

</ div>

展开原文

原文

This doesn't really answer my question, but I did the following to fix it:

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

Output: 2012-09-20T22:00:00-05:00

douxiji8707
douxiji8707 是的! 但你回答了这个问题。 谢谢!
接近 8 年之前 回复
douzongmu2543
douzongmu2543 我们在同一时间发帖。 :)
接近 8 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问