2013-12-26 8 views
-1

В базе данных времени хранится в PHP формат time() Timezone является 'America/New_York',PHP преобразование часового пояса GMT

Я хотел бы преобразовать эти данные и показать пользователю информацию о своем часовом поясе, который будет по Гринвичу (+/-).

+1

'времени()' не имеет часовой пояс. – deceze

+0

Ya, но система знает текущий часовой пояс, в котором хранится время(). –

+2

Нет, значение, возвращаемое 'time', является отметкой времени UNIX, которая ** не имеет часовой пояс **. Не подразумевается, а не явно. Это ** независимый от часовой пояс. ** См. Http://stackoverflow.com/a/4812178/476 – deceze

ответ

2

Datetime() Использование и DateTimeZone()

$date = new DateTime('@'.$row['datetime']); 
$date->setTimeZone(new DateTimeZone('America/New_York')); 
echo $date->format("Y-m-d H:i:s); 
+1

Здесь не работает оператор подавления ошибок. Символ '@' указывает временную метку unix. Обратите внимание, как это делается в кавычках. См. [Это сообщение в блоге] (http://www.johnconde.net/blog/working-with-dates-and-times-in-php/) для получения дополнительной информации (в разделе «Начало работы»). –

+0

@JohnConde Спасибо за ответ. Время, хранящееся в БД, - America/NewYork. Я хочу преобразовать это в другой часовой пояс в GMT. Что будет +5 или -5 как это. Текущие данные хранятся в Америке/New_York –

+1

@AnishJoseph Вам нужно будет иметь массив, который связывает смещения часового пояса с официальными часовыми поясами, чтобы делать то, что вам нужно. Этот код будет работать, как только вы это сделаете. –

Смежные вопросы