Я думаю, что это глупый вопрос, но кажется, что я не могу найти ответ.
У меня есть эта метка времени: 1295598602.
В моем сценарии php у меня есть:
$ date = date ('Ym-d', 1295598602); $ hour = date ('H', 1295598602). ': 00';
Это возвращает:
Дата: 2011-01-21
Час: 03:00
Теперь я перешел на сайт онлайн-конвертации, чтобы проверить это. Я использовал этот . Но кажется, что для этой отметки времени это
Пт, 21 Янв. 2011 08:30:02 GMT
Теперь, какой из них правильный?
Используйте правильный часовой пояс:
>> date_default_timezone_get(); 'UTC' >> date('Ymd h:i:s',1295598602); '2011-01-21 08:30:02' >> date_default_timezone_set('CET'); true >> date('Ymd h:i:s',1295598602); '2011-01-21 09:30:02' >> date_default_timezone_set('UTC'); true >> date('Ymd h:i:s',1295598602); '2011-01-21 08:30:02'
В GMT / UTC (они почти, но не совсем одинаковы), что timestamp действительно Fri, 21 января 2011 08:30:02 GMT.
Если вы находитесь в другом часовом поясе, но всегда хотите GMT, вам нужно будет использовать gmdate()
вместо date()
.
Оба правильные. В фрагменте кода PHP настраивается для часового пояса. Попробуйте date_default_timezone_set('UTC');
для получения правильных нескорректированных значений.
Другой вариант – установить часовой пояс по умолчанию для вашего скрипта.
Например,
date_default_timezone_set('Europe/London'); $timestamp = '1295598602'; echo date('Ymd H:i:s', $timestamp);
даст вам тот же результат, что и инструмент онлайн-конверсии.
В PHP существует ряд функций, связанных с часовым поясом, которые позволят вам изменить, какой часовой пояс отображается.
Вы можете проверить документы PHP для списка своих опций: http://www.php.net/manual/en/ref.datetime.php
Согласно описанию функции date ()
timestamp является необязательной и по умолчанию используется значение time ().
И согласно описанию функции time () , он возвращает отметку времени GMT.
Таким образом, PHP делает преобразование в ваш часовой пояс, а onlineconversion.com – нет.