<?= $form->field($model, 'time')->textInput() ?>
问题一:我的time在数据库里是一个时间戳,我现在想显示的是时间,怎么处理一下?
问题二:我在此日期表单中填入 如 2017-05-13 的字符串,在模型中可以写什么方法将它自动转为时间戳?
class XXX extends \yii\db\ActiveRecord { public function rules() { return [ ...other rules... ['time', function($attr, $params) { if ($this->hasErrors()) return false; $datetime = $this->{$attr}; $time = strtotime($datetime); // 验证时间格式是否正确 if ($time === false) { $this->addError($attr, '时间格式错误.'); return false; } // 将转换为时间戳后的时间赋值给time属性 $this->{$attr} = $time; return true; }], ]; } ...others... /** * 从数据库中 find() 数据后将 time 格式化。 */ public function afterFind() { parent::afterFind(); $this->time = date('Y-m-d', $this->time); }