Я использую Doctrine2 в Postgres. В одной таблице у меня есть два разных типа даты: birthdate:date
и created_at:datetimetz
. Оба становятся объектами DateTime, но с разными параметрами timezone_type
. Вот списки:
created_at
datetimetz:
DateTime Object ( [date] => 2013-04-18 11:54:34 [timezone_type] => 1 [timezone] => +02:00 )
birthdate
:
DateTime Object ( [date] => 1970-01-01 00:00:00 [timezone_type] => 3 [timezone] => Europe/Berlin )
Мне нужно форматировать объекты таким же образом. Оба должны иметь timezone_type=3
.
Как я могу это достичь?
Часовой пояс может быть одним из трех различных типов в объектах DateTime:
new DateTime("17 July 2013 -0300");
new DateTime("17 July 2013 GMT");
new DateTime( "17 July 2013", new DateTimeZone("Europe/London"));
Только объекты DateTime с прикрепленными таймерами типа 3 позволят правильно выполнять DST.
Чтобы всегда иметь тип 3, вам нужно будет сохранить часовой пояс в своей базе данных как принятые идентификаторы из этого списка и применить его к вашему объекту DateTime при создании экземпляра.