丢失的一小时

同样的时间段,在不同的时区下,转换成秒以后居然会不相等。

date_default_timezone_set('America/Los_Angeles');

echo 'America/Los_Angeles';
echo "\n";
$start = strtotime('2010-12-20 00:00:00');
echo $start;
echo "\n";
$end = strtotime('2011-04-05 00:00:00');
echo $end;
echo "\n";
$offset1 = $end - $start;
echo $offset1;
echo "\n";

date_default_timezone_set('Asia/ShangHai');

echo 'Asia/ShangHai';
echo "\n";
$start = strtotime('2010-12-20 00:00:00');
echo $start;
echo "\n";
$end = strtotime('2011-04-05 00:00:00');
echo $end;
echo "\n";
$offset2 = $end - $start;
echo $offset2;
echo "\n";

echo $offset2 - $offset1;

运行结果如下:

X-Powered-By: PHP/5.2.0
Content-type: text/html

America/Los_Angeles
1292832000
1301986800
9154800
Asia/ShangHai
1292774400
1301932800
9158400
3600

在2010-12-20 00:00:00到2011-04-05 00:00:00这段时间内,在America/Los_Angeles时区,它们间隔9154800秒,但在Asia/ShangHai时区,它们间隔9158400秒。相差了3600秒,这一个小时哪里去了?

你可能感兴趣的:(html,PHP)