YII2中 ActiveForm里的field怎么可以输出时间而不是时间戳?

<?= $form->field($model, 'time')->textInput() ?>

问题一:
我的time在数据库里是一个时间戳,我现在想显示的是时间,怎么处理一下?

问题二:
我在此日期表单中填入 如 2017-05-13 的字符串,在模型中可以写什么方法将它自动转为时间戳?


呼唤远方
浏览 1841回答 2
2回答

慕雪6442864

问题一:<?=$form->field($model,&nbsp;'time')->textInput([&nbsp;&nbsp;&nbsp;&nbsp;'value'&nbsp;=>&nbsp;date("Y-m-d&nbsp;H:i:s",&nbsp;'时间戳') ])?>问题二:<?phpecho&nbsp;@strtotime('2017-05-13');?>

Qyouu

class XXX extends \yii\db\ActiveRecord{&nbsp; &nbsp; public function rules()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; return [&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...other rules...&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ['time', function($attr, $params) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($this->hasErrors()) return false;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $datetime = $this->{$attr};&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $time = strtotime($datetime);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // 验证时间格式是否正确&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($time === false) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this->addError($attr, '时间格式错误.');&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // 将转换为时间戳后的时间赋值给time属性&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this->{$attr} = $time;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }],&nbsp; &nbsp; &nbsp; &nbsp; ];&nbsp; &nbsp; }&nbsp; &nbsp; ...others...&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; /**&nbsp; &nbsp; &nbsp;* 从数据库中 find() 数据后将 time 格式化。&nbsp; &nbsp; &nbsp;*/&nbsp; &nbsp; public function afterFind()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; parent::afterFind();&nbsp; &nbsp; &nbsp; &nbsp; $this->time = date('Y-m-d', $this->time);&nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP