У меня проблемы с отображением правильного смещения часового пояса при переводе объекта datetime с STRFTIME ()
Это объект, с которым я работаю (имя: $match_dateobject
):
DateTime Object
(
[date] => 2014-09-17 10:45:00
[timezone_type] => 1
[timezone] => -08:00
)
Я хочу показать это в следующем формате, адаптированном к часовому поясу Мадрида (GMT + 2) и с голландскими названиями дней и месяцев: «Среда 17 сентября 20:45»
Это работает для английской версии:
$match_dateobject->setTimezone(new DateTimeZone('Europe/Madrid'));
echo $match_dateobject->format('l j F H:i');
=> Result: Wednesday 17 September 20:45
Но когда я переводю названия дней / месяцев с помощью strftime (), часовой пояс игнорируется:
$match_dateobject->setTimezone(new DateTimeZone('Europe/Madrid'));
$timestamp = $match_dateobject->format('U');
setlocale(LC_TIME, 'nl_NL.UTF-8');
echo strftime("%A %e %B %G %H:%M", $timestamp );
=> Result: woensdag 17 september 2014 18:45
Обратите внимание, что он показывает часовой пояс GMT по умолчанию вместо Европы / Мадрида (GMT + 2).
Есть ли способ установить часовой пояс при работе с strftime ()?
Да уж,
date_default_timezone_set('Europe/Madrid');
просто добавьте 1 функцию date_default_timezone_set (); в котором проходят часовой пояс, такой как «America / New_York», вы можете узнать свой часовой пояс на https://www.w3schools.com/php/php_ref_timezones.asp
date_default_timezone_set("America/New_York");
echo strftime("%A %e %B %G %H:%M", time() );