0

我将所有日期时间值存储为 unix 时间戳。注册用户可以在他们的个人资料中设置个人 GMT 区域设置。我应该怎么做才能在用户的 GMT 语言环境中显示网站上的所有日期时间?

谢谢

4

2 回答 2

1

没有“用户的 GMT 语言环境”之类的东西。您必须指的是用户的timezone

您可以通过以下方式将 unix 时间戳转换为用户时区中的日期:

$timestamp = ...;
$tz = new DateTimezone("Europe/Lisbon"); //substitute by the user's timezone
$d = new DateTime("@$timestamp");
$d->setTimezone($d);
echo $d->format(DateTime::RFC822);

如果您只有 GMT 偏移量,您可以使用:

$tz = new DateTimezone("Etc/GMT-12");

但是请注意,如果您使用 GMT 偏移量,则必须在用户进入或离开夏令时时更改它们。

于 2010-08-10T23:17:15.020 回答
-1

使用 PHP:

date("Y-m-d H:i:s", $timestamp);

使用 MySQL:

FROM_UNIXTIME()
于 2010-08-10T23:17:37.657 回答