关于php:转换MySQL数据库行时间时区

Converting a MySQL database row time timezone

所以我偶然发现了一些非常复杂的东西,因为如果他们在同一个帐户上,我认为你不能在MySQL中为每个数据库设置单独的时区吗?

基本上我的大多数数据库都是针对美国用户并使用美国时区之一,然后我还运行了一个英文博客。

我的问题是英文博客在日期时间行中插入了正确的BST(GMT + 1)值,但它在使用MDT时区的数据库中。

然后,我需要使用以下时间获取rss feed:

1
$date = date('r', $data['date']); //MDT system but $data['date'] is GMT+1

但由于时区不正确,这给了我博客发布时的未来时间。

有没有办法将BST转换为MDT?

但它变得更加复杂,因为在英格兰的一些月份我们使用GMT(GMT + 0)而不是BST(GMT + 1)...无论如何都要确定在英格兰时间使用哪个时区。一年并做转换,或者我只是过分复杂这件事?


以下解决方案完美运行:

1
2
3
4
$oldDate = date('l F j Y H:i:s', $link['date']);
$date = new DateTime($oldDate, new DateTimeZone('Europe/London'));
$date->setTimezone(new DateTimeZone('UTC'));
echo $date->format('r');