为什么澳大利亚/布里斯班(UTC + 10)的时间值低于UTC?

时间:2011-02-16 03:58:08

标签: php time timezone

欢迎在此处运行代码:http://codepad.org/SAOaOABn

代码:

<?php

$time = time();

echo date_default_timezone_get()."\n";
echo mktime( gmdate("H", $time), gmdate("i", $time), gmdate("s", $time), gmdate("m", $time), gmdate("d", $time), gmdate("Y", $time))."\n";

date_default_timezone_set('Australia/Brisbane');
echo date_default_timezone_get()."\n";
echo mktime( gmdate("H", $time), gmdate("i", $time), gmdate("s", $time), gmdate("m", $time), gmdate("d", $time), gmdate("Y", $time));

输出:

UTC
1297828288
Australia/Brisbane
1297792288

我的问题是,为什么澳大利亚/布里斯班(UTC + 10)的时间值低于UTC?

1 个答案:

答案 0 :(得分:5)

您告诉计算机您的时区是UTC + 10。然后,当你说“请告诉我它在布里斯班11:00时的UTC时间”时,你将得到01:00 UTC。

mktime函数使用本地时间,而gmdate使用UTC,因此您不会返回UTC。如果您使用date代替gmdate,则会得到相同的时间。