Преобразование метки времени Unix в часовой пояс Locale - PullRequest
1 голос
/ 06 мая 2011

Все,

Как преобразовать метку времени Unix в дату и время в местном часовом поясе.Для отметки времени = 1303374724716 функция PHP date ('r', $timestamp) дает мне Sun, 16 May 2032 22:11:37 +0000, тогда как преобразователь эпох ПРАВИЛЬНО преобразует в
GMT: Thu, 21 Apr 2011 08:32:04 GMT<br> Your timezone: Thu Apr 21 2011 04:32:04 GMT-0400 (Eastern Daylight Time)

Я видел файл php.iniи часовой пояс по умолчанию - UTC.Я не понимаю, почему значение даже не соответствует времени GMT / UTC.Может кто-нибудь, пожалуйста, помогите мне преобразовать в мой местный часовой пояс, т.е. New_York.

Ответы [ 2 ]

3 голосов
/ 06 мая 2011

Это потому, что указанная вами метка времени указана в миллисекундах.

Do:

$timestamp = floor(1303374724716/1000);

И все будет работать, как и ожидалось.

2 голосов
/ 06 мая 2011

Документы говорят:

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

Если вы запускаете

print time();

вы получите число типа 1304640077.

Обратите внимание, что оно в 1000 раз меньше числа, которое вы пытаетесь передать.

Другими словами, вам следует передать ему значениев секундах, а не в миллисекундах.

Чтобы установить часовой пояс, используйте date_default_timezone_set , например,

date_default_timezone_set('America/New_York');

или установите date.timezone вФайл php.ini.

...