欢迎在此处运行代码: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?
答案 0 :(得分:5)
您告诉计算机您的时区是UTC + 10。然后,当你说“请告诉我它在布里斯班11:00时的UTC时间”时,你将得到01:00 UTC。
mktime
函数使用本地时间,而gmdate
使用UTC,因此您不会返回UTC。如果您使用date
代替gmdate
,则会得到相同的时间。