显示MySQL的datetime在用户的时区


Display MySQL datetime in users timezone

使用now()创建的MySQL日期时间存储为UTC。

使用JavaScript检测客户端时区并返回"Europe/London"

从MySQL中选择datetime并在用户本地时间中显示创建时间的最佳方法是什么?

PHP和Node都用于MySQL

可以使用MySQL CONVERT_TZ函数

SELECT CONVERT_TZ(NOW(), 'UTC', 'Europe/London')

我不知道你的逻辑是如何制作的,但我在PHP中使用这个:

function utc_to_timezone($format, $date, $to_timezone)
{
    $date = new DateTime($date);
    $date->setTimezone(new DateTimeZone($to_timezone));
    return $date->format($format);
}

的例子:

echo utc_to_timezone('Y-m-d H:i:s', '2014-07-04 15:34:23', 'Europe/London');