2014-10-03 9 views
0

Я новичок в php. Я создаю веб-приложение для онлайн-телестанции, и я работаю над системой расписания программ. Моя проблема заключается в том, как отображать время программы относительно конечного пользователя. Чтобы программа, которая транслировалась на 7 утра EST на сервере, отображалась как 6 утра CST. Кто-нибудь знает простое решение? СпасибоФункция часового пояса PHP

+1

Привет, добро пожаловать в StackOverflow. Вы получите лучший ответ, если вы включите образец кода, показывающий, что вы уже пробовали! –

+0

Документацию по поддержке даты, времени и часового пояса PHP можно найти здесь (http://php.net/manual/en/book.datetime.php). –

ответ

0

Используйте класс DateTime, проанализируйте время программы в локальном часовом поясе, затем установите часовой пояс в часовой пояс конечного пользователя и отобразите его. Вот несколько простой пример ...

$dt = new DateTime('7am', new DateTimeZone('America/New_York')); 
echo $dt->format('r'); 
// Fri, 03 Oct 2014 07:00:00 -0400 

$dt->setTimezone(new DateTimeZone('America/Chicago')); 
echo $dt->format('r'); 
// Fri, 03 Oct 2014 06:00:00 -0500 
+1

Обратите внимание, что 'CST' не является допустимым часовым поясом PHP, но' US/Central'. – worldofjr

+0

@worldofjr странный, он работает для меня, и, как вы можете видеть из моего примера выше, это правильно (-0600). В любом случае, это всего лишь пример – Phil

+1

Недействителен. Я думаю, что это зависит от вашего сервера. См. [PHP: Другие часовые пояса] (http://php.net/manual/en/timezones.others.php), и вы заметите, что его нет в списке. В любом случае, эти временные интервалы предназначены только для обратной совместимости. Например, EST должен использовать 'America/New_York'. – worldofjr

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