Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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 Yii2以UTC格式获取时间_Php_Yii2_Timestamp_Utc - Fatal编程技术网

Php Yii2以UTC格式获取时间

Php Yii2以UTC格式获取时间,php,yii2,timestamp,utc,Php,Yii2,Timestamp,Utc,有没有一种简单的方法可以在不更新配置文件的情况下获取UTC时间戳 我可以使用phpdate\u default\u timezone\u set来实现这一点。 我需要在Yii2中使用此选项,new\DateTimeZone('UTC')似乎不起作用 通常最方便的处理方法是使用组件。如果所有日期都在同一时区,则使用配置中的设置仅在一个位置进行配置(在您的情况下,您可以跳过此设置,因为UTC是默认值): $date = new \DateTimeZone(\Yii::$app->timeZon

有没有一种简单的方法可以在不更新配置文件的情况下获取UTC时间戳

我可以使用php
date\u default\u timezone\u set来实现这一点。

我需要在Yii2中使用此选项,
new\DateTimeZone('UTC')
似乎不起作用

通常最方便的处理方法是使用组件。如果所有日期都在同一时区,则使用配置中的设置仅在一个位置进行配置(在您的情况下,您可以跳过此设置,因为
UTC
是默认值):

$date = new \DateTimeZone(\Yii::$app->timeZone);
echo $date->getName().'<br>';


$date = new DateTimeZone('UTC');
echo $date->getName().'<br>'; 


\Yii::$app->timeZone = 'EST';
$date = new DateTimeZone(\Yii::$app->timeZone);
echo $date->getName(); 
然后您可以使用:


您可以使用以下代码在控制器操作中设置默认时区

$UTC = new DateTimeZone("UTC");
$newTZ = new DateTimeZone("America/New_York");
$date = new DateTime( "2011-01-01 15:00:00", $UTC );
$date->setTimezone( $newTZ );
echo $date->format('Y-m-d H:i:s');
或在任何控制器动作中使用

date_default_timezone_set("Asia/Bangkok");
echo date_default_timezone_get();
echo Yii::$app->getFormatter()->asTimestamp($date);
$UTC = new DateTimeZone("UTC");
$newTZ = new DateTimeZone("America/New_York");
$date = new DateTime( "2011-01-01 15:00:00", $UTC );
$date->setTimezone( $newTZ );
echo $date->format('Y-m-d H:i:s');
date_default_timezone_set("Asia/Bangkok");
echo date_default_timezone_get();