使用strftime()时设置时区

时间:2014-09-22 11:47:51

标签: php date datetime

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

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

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

我希望以下列格式显示,调整为马德里时区(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

但是当我用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()时有没有办法设置时区?

2 个答案:

答案 0 :(得分:3)

是的,

 date_default_timezone_set('Europe/Madrid');

答案 1 :(得分:0)

只需添加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() );