试着在这里趟过Yii,在飞行中学习。我们将项目从unix服务器迁移到Windows服务器,并且遇到了一些日期/时间问题。
我目前有一个模型“活动”,其中有两个属性happend_on
,happend_at
。我想要做的是动态地将这些属性动态设置为UTC时间。但是,我一直从CActiveRecord.php获取一个属性Activity.happend_on
,Activity.happend_on
未定义错误。我阅读了几个关于覆盖模型中的set方法的地方(没有工作),并且在你的危险中,重写magic _set方法,也没有用。我真的想动态设置这些属性。
$activity = $this->loadModel ( $id );
$time = $activity->happened_on . " " . $activity->happened_at;
date_default_timezone_set ( "UTC" );
$utc_date = DateTime::createFromFormat (
'm/d/Y H:i:s', gmdate ( "m/d/Y H:i:s", strtotime ( $time ) ), new DateTimeZone ( 'UTC' ));
$date = $utc_date;
$date->setTimeZone ( new DateTimeZone ( $time_zone ) );
// THESE ARE THE LINES THAT FAIL - NEED TO UPDATE THE PROPERTIES.
$activity->happend_on = $date->format("m/d/Y");
$activity->happend_at = $date->format("H:i:s");
答案 0 :(得分:0)
您错误地拼写了happend_on
和happend_at
。
您打算使用happened_on
和happened_at
加上e
。
如果您仔细阅读错误消息,这非常简单,这正是它所说的:
找不到属性,因为拼错了它们!
下次,如果您收到未定义错误,请检查错误消息中提到的属性。