Я использовал strtotime($datetime)
в PHP для преобразования dateTime во второй (см. Код ниже).
$datetime= '2012-04-17 00:00:00'; $second = strtotime($datetime);
Однако результат $ second в часовом поясе ( Лондон ) составляет 1334617200, а во временной зоне ( Пекин ) – 1334620800 .
Может ли кто-нибудь объяснить мне, почему это произошло? Является ли результат strtotime () изменен в зависимости от часового пояса?
Заранее спасибо!
Из документации:
Каждый параметр этой функции использует часовой пояс по умолчанию, если в этом параметре не указан часовой пояс. Будьте осторожны, чтобы не использовать разные часовые пояса в каждом параметре, если это не предназначено. См. Date_default_timezone_get () для различных способов определения часового пояса по умолчанию.
Так что да, он основан на часовом поясе, если вы не укажете конкретный часовой пояс в $datetime
Да это верно. Учитывается часовой пояс.
См. Также: PHP – strtotime, укажите часовой пояс
Вы можете установить часовой пояс по умолчанию: date_default_timezone_set, в противном случае используется системный часовой пояс по умолчанию.
Справка:
http://www.php.net/manual/en/function.date-default-timezone-get.php
Чтобы использовать GMT, используйте time () в качестве второго параметра:
strtotime($datetime, time())