日期未转换到php中的欧洲/伦敦时区



我在Cake PHP 2 web应用程序中工作,默认配置设置为UTC。我可以看到我的模型的created字段在UTC中保存(比欧洲/伦敦晚1小时,我当前的时间(。

当我在视图中检索模型并输出created字段的内容时,这是保存在数据库中的UTC时间:

2022-08-12 15:31:05

但当尝试使用PHP日期时间将其转换为Europe/London时,它没有给我正确的时间:

2022-08-12 16:31:05

奇怪的是,如果我将DateTimeZone中的Europe/London更改为UTC,那么它会给我:

2022-08-12 14:31:05

我错过了什么才能获得正确的时间:

$created = new DateTime($automatedReport['ConsolidatedReport']['created']);
$created = $created->setTimezone(new DateTimeZone('Europe/London'));
$created = $created->format('D jS, H:i:s');

使用UTC创建日期,然后转换为伦敦。

$created = new DateTime('2022-08-12 15:31:05', new DateTimeZone('UTC'));
$created = $created->setTimezone(new DateTimeZone('Europe/London'));
$created = $created->format('D jS, H:i:s');

给出

Fri 12th, 16:31:05

最新更新