【问题标题】:PHP Time/Date Timezone Specific StuffPHP时间/日期时区特定的东西
【发布时间】:2013-10-28 16:26:00
【问题描述】:

我有点好奇如何在获取用户时区的同时存储和访问各种事物的“时间点”。使用time(); 作为存储/数据库数据会很酷。

例如,如果我对博客进行更新,它会将标记显示为 26/01/2000 11:34,但如果用户的时区比我的时间早一小时,那么它将显示为 26/01/2000 12:34,这当然是通过他们的设置确定的.它对于时间限制功能的倒计时也很有用。但是,我不知道如何以这种方式格式化 unix-timestamp。指导和帮助会很棒:)。

【问题讨论】:

    标签: php date time timezone unix-timestamp


    【解决方案1】:

    很抱歉在这里和另一个时间问题上重新发布我的答案。

    这适用于格式为“YYYY-MM-DD HH:MM:SS”的任何时间(可能还有“新日期时间”函数可以使用的任何时间。

    function changetimefromUTC($time, $timezone) {                   // SEND YOUR ORIGINAL TIME AND YOUR NEW TIMEZONE
        $changetime = new DateTime($time, new DateTimeZone('UTC'));  //YOUR ORIGINAL TIME GOES HERE
        $changetime->setTimezone(new DateTimeZone($timezone));       // THIS CHANGES TO THE NEW TIMEZONE
        return $changetime->format('m/d/y h:i a');    // THIS OUTPUTS THE NEW TIME IN WHATEVER FORMAT YOU WANT
    }
    

    支持的时区列表http://us1.php.net/manual/en/timezones.php

    【讨论】:

      【解决方案2】:

      您的所有发布时间和服务器时间都应该是 UTC 开始。 从数据库中检索您的发布时间,并以类似于下面的方式使用 DateTime 和 DateTimeZone 类

      $fromDatabase = '2008-08-03 14:52:10';
      $datetime = new DateTime($fromDatabase);
      $timezone = new DateTimeZone('America/Los_Angeles');
      $datetime->setTimeZone($timezone);
      echo $datetime->format('Y-m-d H:i:s');
      

      如果使用 MySQL,您也可以在 Linux 上加载时区表并调整 MySQL 查询中返回的日期时间。请参阅此页面了解如何开始 - http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

      【讨论】:

        【解决方案3】:

        请在日期上阅读手册页:

        PHP Manual: Date

        我相信这段代码会满足你的要求:

        $time = time();
        $today = date("m j, Y, G:i a");
        echo $today;
        

        要更改时区,请增加或减少一个小时。由于 unix 时间戳以秒为单位,因此 60 秒 x 60 分钟 = 1 小时或 360 秒。所以加 360 秒向前移动一小时,减去 o 向后移动一小时,如下所示:

        $time = time()-360;
        

        【讨论】:

        • 据我所知,如果您想要更高的准确度,您可以 get the time in milliseconds in PHP 使用 microtime(true),它返回秒但作为浮点值,然后您可以乘以 1000 以获得毫秒:round(microtime(真)* 1000)
        猜你喜欢
        • 2011-05-03
        • 1970-01-01
        • 2020-01-06
        • 2016-03-12
        • 1970-01-01
        • 1970-01-01
        • 2021-09-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多