DateTime — смещение часового пояса и включение летнего времени

Я знаю, что вопросы по этой теме задавались снова и снова, но все чтение только усилило мое замешательство, поэтому я решил спросить здесь.

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

Итак, что я «просто» хотел бы сделать: получить дату из базы данных и отформатировать ее, но каким-то образом, начиная с перехода на летнее время, дата показывается минус один час.

код:

$date = $item['date'] //<-- the result from the database (2015-11-27 08:15:00)

$dt = new DateTime($date, new DateTimeZone(date_default_timezone_get()));

echo $dt->format('G:i') // 8:15

Значение, которое фактически было записано в «поле даты» формы администрирования 9:15 и это то, что должно отображаться.

Пожалуйста, поправьте меня, если я ошибаюсь, но я думаю, что «Летнее время» похоже на общую основу. И переход на «зимнее время» может быть +1,

echo $dt->getOffset() // 3600s = 1 hour

Если мое предположение верно, это смещение должно быть равно нулю в «Летнем времени», верно? Но это приводит к тому, что я не могу разобраться, так как я в часовом поясе Europe/Berlin что само по себе определено быть UTC +1

Так что смещение это делает getOffset() представлять и как я могу отобразить «правильное время»?

Спасибо впереди!

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]