Получите правильный час для метки времени UNIX - PullRequest
3 голосов
/ 21 января 2011

Я думаю, что это глупый вопрос, но, похоже, я не могу найти ответ.

У меня есть эта метка времени: 1295598602.

В моем PHP-скрипте у меня есть:

$ date = date ('Y-m-d', 1295598602); $ час = дата ('H', 1295598602). ': 00';

Возвращает:

Дата: 2011-01-21
Час: 03:00

Теперь я пошел на сайт онлайн-конвертации, чтобы проверить это. Я использовал этот . Но, похоже, для этой отметки времени она составляет

Пт, 21 января 2011 08:30:02 GMT

Теперь, какой из них правильный?

Ответы [ 5 ]

6 голосов
/ 21 января 2011

Используйте правильный часовой пояс:

>> date_default_timezone_get();
'UTC'
>> date('Y-m-d h:i:s',1295598602);
'2011-01-21 08:30:02'
>> date_default_timezone_set('CET');
true
>> date('Y-m-d h:i:s',1295598602);
'2011-01-21 09:30:02'
>> date_default_timezone_set('UTC');
true
>> date('Y-m-d h:i:s',1295598602);
'2011-01-21 08:30:02'
4 голосов
/ 21 января 2011

В GMT / UTC (они почти , но не совсем точно такие же), эта отметка времени действительно пятница, 21 января 2011 08:30:02 GMT.

Если вы находитесь в другом часовом поясе, но всегда хотите использовать GMT, вам нужно использовать функцию gmdate() вместо date().

1 голос
/ 21 января 2011

Другой вариант - установить часовой пояс по умолчанию для вашего скрипта.

Например,

date_default_timezone_set('Europe/London');
$timestamp = '1295598602';
echo date('Y-m-d H:i:s', $timestamp);

даст вам тот же результат, что и инструмент для онлайн-конвертации.

В PHP есть ряд функций, связанных с часовым поясом, которые позволят вам изменить отображаемый часовой пояс.

Вы можете проверить в документации PHP список ваших опций: http://www.php.net/manual/en/ref.datetime.php

1 голос
/ 21 января 2011

Оба верны. В фрагменте кода PHP настраивается на часовой пояс. Попробуйте date_default_timezone_set('UTC');, чтобы получить правильные нескорректированные значения.

0 голосов
/ 21 января 2011

Согласно date () описание функции,

отметка времени не является обязательной и по умолчанию значение времени ().

И, согласно time () описанию функции, возвращается время по Гринвичу.

Итак, PHP выполняет преобразование в ваш часовой пояс, а onlineconversion.com - нет.

...