使用 strftime() 时设置时区

Mat*_*vic 1 php datetime date

使用strftime()翻译日期时间对象时,我在显示正确的时区偏移时遇到了一些问题

这是我正在使用的对象(名称:)$match_dateobject

DateTime Object
(
    [date] => 2014-09-17 10:45:00
    [timezone_type] => 1
    [timezone] => -08:00
)
Run Code Online (Sandbox Code Playgroud)

我想以以下格式显示,调整为马德里时区 (GMT+2) 并使用荷兰日期和月份名称:“星期三 9 月 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
Run Code Online (Sandbox Code Playgroud)

但是当我用 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
Run Code Online (Sandbox Code Playgroud)

请注意,它显示的是默认的 GMT 时区,而不是欧洲/马德里 (GMT+2)。

有没有办法在使用 strftime() 时设置时区?

小智 5

是的,

 date_default_timezone_set('Europe/Madrid');
Run Code Online (Sandbox Code Playgroud)