我在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