Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将时间戳转换为时区_Php_Timezone - Fatal编程技术网

Php 将时间戳转换为时区

Php 将时间戳转换为时区,php,timezone,Php,Timezone,我有一个用户在GMT中输入的时间戳 然后我想用gmt、cet、pst、est显示时间戳 感谢下面的帖子,我已经做了,这是完美的工作 public static function make_timezone_list($timestamp, $output='Y-m-d H:i:s P') { $return = array(); $date = new DateTime(date("Y-m-d H:i:s", $timestamp)); $timez

我有一个用户在GMT中输入的时间戳

然后我想用gmt、cet、pst、est显示时间戳

感谢下面的帖子,我已经做了,这是完美的工作

public static function make_timezone_list($timestamp, $output='Y-m-d H:i:s P') {

    $return     = array();
    $date       = new DateTime(date("Y-m-d H:i:s", $timestamp));
    $timezones  = array(
        'GMT' => 'GMT', 
        'CET' => 'CET', 
        'EST' => 'EST', 
        'PST' => 'PST'
    );

    foreach ($timezones as $timezone => $code) {
        $date->setTimezone(new DateTimeZone($code));
        $return[$timezone] = $date->format($output);
    }
    return $return;
}
您可以使用PHP5。它允许对时区设置和输出进行非常细粒度的控制。从手册中重新混合:

$timestamp = .......;


$date = new DateTime("@".$timestamp);  // will snap to UTC because of the 
                                       // "@timezone" syntax

echo $date->format('Y-m-d H:i:sP') . "<br>";  // UTC time

$date->setTimezone(new DateTimeZone('Pacific/Chatham'));   
echo $date->format('Y-m-d H:i:sP') . "<br>";  // Pacific time

$date->setTimezone(new DateTimeZone('Europe/Berlin'));
echo $date->format('Y-m-d H:i:sP') . "<br>";  // Berlin time    
$timestamp=。。。。。。。;
$date=新的日期时间(“@”。$timestamp);//将捕捉到UTC,因为
//“@timezone”语法
echo$date->format('Y-m-dh:i:sP')。“
”;//UTC时间 $date->setTimezone(新的DateTimeZone('Pacific/Chatham')); echo$date->format('Y-m-dh:i:sP')。“
”;//太平洋时间 $date->setTimezone(新的DateTimeZone('Europe/Berlin')); echo$date->format('Y-m-dh:i:sP')。“
”;//柏林时间
查找相对于GMT的时区偏移量,并将其添加到GMT中的当前时间戳中。时区的完美答案。。。通过谷歌来到这里。你问题中的例子与公认的答案相同(它使用DateTIme),我不明白问题是什么,因为你说“它工作得很完美”。另外,我不明白你为什么接受了一个与你问题中的代码完全相同的答案。这是否也适用于日光节约。?或者我们不必在意,只需要时差@zod it也将处理DST。ateTime::_construct()[]:无法分析位置8(8)处的时间字符串(1438929689):意外字符