Работа с датами и часовыми поясами с помощью Zend_Date

У меня есть приложение, которое использует Zend_Date для отображения дат. Экземпляры Zend_Date создаются с использованием данных datetime из MySQL, пользовательского ввода и текущей даты.

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

На данный момент мой код работает так:

$date = '2009-01-01 10:30:00';

$date = new Zend_Date($date, Zend_Date::ISO_8601);

echo $date->get(Zend_Date::TIME_MEDIUM); //10:30:00

$date->setTimezone('Australia/ACT');

echo $date->get(Zend_Date::TIME_MEDIUM); //21:30:00

Это работает, но требует вызова setTimezone каждый день. Есть ли более простой способ управлять часовыми поясами?

Я также искал возможность использования SET time_zone с MySQL для возврата скорректированных данных из MySQL. Тогда мне нужно будет только настроить даты, созданные в сценариях PHP, для часовых поясов.

Я хотел бы услышать, как лучше всего с этим справиться, если у кого-то есть опыт.

Спасибо


person David Snabel-Caunt    schedule 16.06.2009    source источник


Ответы (2)



Я думаю, вы могли бы использовать Zend_Locale, прочитать некоторые документы об этом, и почти уверен, что вы сможете заставить его работать. С другой стороны, если вы используете Zend_Cache и Zend_Locale / Zend_Date, это поможет немного повысить скорость. Примеры использования также есть в документации по фреймворку zend.

person drailean    schedule 15.01.2010