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

bob*_*obo 1 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));
Run Code Online (Sandbox Code Playgroud)

输出:

UTC
1297828288
Australia/Brisbane
1297792288
Run Code Online (Sandbox Code Playgroud)

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

Gab*_*abe 5

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

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