如何在PHP中将UNIX时间戳转换为PST


How to convert UNIX Timestamp to PST in PHP

我正在获取日期&UNIX中的时间时间时间戳。所以想将其转换为"美国/洛杉矶"时区,格式为dd-mm-yyyy-HH:mm:SS。

如何在PHP中做到这一点?

例如:输入:1345014000输出:2012年8月15日00:00:00

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

要将时间戳转换为字符串,可以使用以下函数:

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

您需要通过以下函数设置时区(在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); 

此代码适用于我的

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

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

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

使用DateTime:

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

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