【问题标题】:How to display all datetime on website in user's GMT locale?如何在用户的 GMT 语言环境中显示网站上的所有日期时间?
【发布时间】:2011-03-28 02:48:52
【问题描述】:

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

谢谢

【问题讨论】:

    标签: php gmt


    【解决方案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 偏移量,则必须在用户进入或离开夏令时时更改它们。

    【讨论】:

      【解决方案2】:

      使用 PHP:

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

      使用 MySQL:

      FROM_UNIXTIME()
      

      【讨论】:

      • 在用户区域中,而不是在服务器中。
      • 好的,在这种情况下,我现在看到 Artefacto 回答了这个问题。我只添加了支持的时区列表ch2.php.net/manual/en/timezones.php
      猜你喜欢
      • 1970-01-01
      • 2010-09-10
      • 2016-07-11
      • 1970-01-01
      • 1970-01-01
      • 2019-03-22
      • 1970-01-01
      • 2020-06-19
      • 2015-05-09
      相关资源
      最近更新 更多