Почему Австралия / Брисбен (UTC + 10) дает значение времени меньше, чем UTC? - PullRequest
1 голос
/ 16 февраля 2011

Не стесняйтесь использовать коды здесь: 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 Ответ

5 голосов
/ 16 февраля 2011

Вы говорите компьютеру, что ваш часовой пояс UTC + 10.Затем, когда вы говорите «пожалуйста, скажите мне время UTC, когда в Брисбене 11:00», вы получите 01:00 UTC.

Функция mktime использует местное время, а gmdateиспользует UTC, поэтому вы не получите обратно UTC.Если вы используете date вместо gmdate, вы получите то же время назад.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...