Yii2格式化程序asTime返回不同时间

Yii2格式化程序asTime返回不同时间,yii2,Yii2,为什么Yii2格式化程序asTime方法返回的时间与asDateTime方法不同 Yii::$app->formatter->timeZone = 'Asia/Tehran'; date_default_timezone_set('Asia/Tehran'); var_dump(date_default_timezone_get()); //'Asia/Tehran' var_dump(Yii::$app->timeZone); //'Asia/Tehran' var_dum

为什么Yii2格式化程序asTime方法返回的时间与asDateTime方法不同

Yii::$app->formatter->timeZone = 'Asia/Tehran';
date_default_timezone_set('Asia/Tehran');

var_dump(date_default_timezone_get()); //'Asia/Tehran'
var_dump(Yii::$app->timeZone); //'Asia/Tehran'
var_dump(Yii::$app->formatter->timeZone); //'Asia/Tehran'

var_dump(Yii::$app->formatter->asDatetime('now')); //'Aug 28, 2017, 3:22:25 PM'
var_dump(Yii::$app->formatter->asTime('now')); //'10:52:25 AM' Why it's different from the top

自2.0.12以来,Yii检查传递给
asTime()
的值是否包含时间信息(小时、分钟或秒)。如果没有(并且
现在
没有),则需要
默认时区
而不是
时区
(默认为UTC)


如果希望
asDatetime()
中的时间与
asTime()中的时间相同,则需要设置
Yii::$app->formatter->defaultTimeZone='Asia/Tehran'
但请记住,这可能会影响其他代码和数据库记录的保存。

避免仅日期
asDate()
和仅时间
asTime()
值的时区转换