У меня есть магазин WordPress Marketplace, где «автор» продукта имеет часовой пояс, сохраненный в usermeta в строковом формате, то есть Americas/Chicago
.
Я хочу вывести часовой пояс каждого пользователя с UTCсмещение вместо строки, чтобы я мог более легко манипулировать им.Я получил этот пример ниже из другого вопроса переполнения стека, но он не работает в моей ситуации.
$timezone = 'America/New_York'; //example string although I am getting the timezone from the database based on each users settings
if(!empty($timezone)) {
$UTC = new DateTimeZone("UTC");
$newTZ = new DateTimeZone($timezone);
$date = new DateTime( $newTZ );
$date->setTimezone( $UTC);
echo $date->format('H:i:s');
}
Однако этот код ломает страницу.Не могу понять, почему это будет ломать страницу.Я поместил его в отдельную функцию, и он все еще ломается, и журнал ошибок тоже мало чем помогает.
В журнале написано:
DateTime->__construct(Object(DateTimeZone))