【问题标题】:How to convert UNIX Timestamp to PST in PHP如何在 PHP 中将 UNIX 时间戳转换为 PST
【发布时间】:2012-09-01 13:17:50
【问题描述】:

我在 UNIX 时间戳中获取日期和时间。 所以想将其转换为 dd-mm-yyyy HH:MM:SS 格式的“America/Los_Angeles”时区。

如何在 PHP 中做到这一点?

例如: 输入:1345014000 输出:15-08-2012 00:00:00

【问题讨论】:

    标签: php datetime time


    【解决方案1】:

    date_default_timezone_set 函数可用于在 PHP 中设置当前时区。每个文件只需要调用一次,因为从那时起的所有计算都将使用该时区完成。它接受所有有效的时区名称,例如您提到的那个。

    另一方面,date 函数接受一个解释格式的字符串,以及您希望转换的时区。可以在以下位置找到完整的格式化选项列表:http://php.net/manual/en/function.date.php

    在您的情况下使用如下:

    date_default_timezone_set("America/Los_Angeles");
    $str=date('d-m-Y H:i:s',$timestamp); //Where $timestamp is the timestamp to be converted
    

    【讨论】:

      【解决方案2】:

      要将时间戳转换为字符串,可以使用following function

      string date ( string $format [, int $timestamp = time() ] )
      

      您需要通过following function 设置您的时区(在 php.ini 中的服务器级别或脚本级别):

      bool date_default_timezone_set ( string $timezone_identifier )
      

      如下调用:

      date_default_timezone_set ("America/Los_Angeles");
      $yourDateString = date("d-m-Y H:i:s", $yourTimeStamp); 
      

      【讨论】:

        【解决方案3】:

        此代码适用于我

        DATE("Y-m-d H:i:s",$unix_timestamp);
        

        我从数据库中获取我的 tymestamp,所以实际上我的代码是:

        echo DATE("d/m/Y H:i", $row['lastlogin']);
        

        【讨论】:

          【解决方案4】:

          使用日期时间:

          <?php
          $input = '1345014000';
          $oDate = new DateTime('@' . $input, new DateTimeZone('America/Los_Angeles'));
          
          echo $oDate->format('d-m-Y H:i');
          ?>
          

          如果您的默认时区设置为 LA,您可以省略 DateTime 的第二个参数。否则,您可以使用您选择的时区,并为不同的时区创建多个 $oDates,如果您想这样做

          【讨论】:

            猜你喜欢
            • 2013-07-02
            • 2012-04-17
            • 2017-03-30
            • 2011-01-29
            • 1970-01-01
            • 2022-11-03
            • 2021-05-13
            • 2021-05-28
            • 2021-05-24
            相关资源
            最近更新 更多