使用 PHP 将时间从数据库转换为 BST

Converting a Time from a database to BST with PHP

所以我尝试了各种组合以从我的数据库中获取一个日期(使用 Wordpress)以英国夏令时显示,但我无法正常工作。

是否有任何简单的解决方案可以获取日期字符串并确保在英国的夏令时与 UTC 时间相差一个小时?

$classJson = $class->info;
$classJsonAsArray = json_decode($classJson, TRUE);

$classStartDate = strtotime($class->periodStart);
$classStartTime = date('H:i',$classStartDate);

所以目前 $class->periodStart returns: 2022-04-06 08:30:00

那个事件的时间应该是上午 9.30

我需要它做的就是显示正确的时间,目前,在前端显示为上午 8.30。

DateTime 时区处理得很好。

$dateStringInUtc = '2022-04-06 08:30:00';
$date = new DateTime($dateStringInUtc, new DateTimeZone('UTC'));
$date->setTimezone(new DateTimeZone('Europe/London'));

echo $date->format('Y-m-d H:i:s'); // will output 2022-04-06 09:30:00

像接受的答案中那样使用日期时间和时区是更好的方法。

但如果将时区附加到日期字符串,它也适用于 strtotime。日期然后 returns 时间戳的本地时间。

$utcDate = '2022-04-06 08:30:00';
echo date('Y-m-d H:i:s',strtotime($utcDate.' UTC'));