$model->datetime
为d-m-Y H:i:s
。
<?php echo $form->textField($model,'datetime'); ?>
我想输入的值只是d-m-Y,我该如何格式化?
答案 0 :(得分:3)
一种选择是将日期转换为人类可读格式以显示它,然后在保存之前返回到数据库所需的格式。您可以在模型中编辑/创建afterFind()
方法,将日期转换为人类可读格式,如下所示:
public function afterFind()
{
$newDate = DateTime::createFromFormat('d-m-Y H:i:s', $this->datetime);
$this->datetime = $newDate->format('d-m-Y');
return parent::afterFind();
}
在您通过编辑/创建模型的beforeSave()
方法进行保存之前,例如:
public function beforeSave()
{
$newDate = DateTime::createFromFormat('d-m-Y', $this->datetime);
$this->datetime = $newDate->format('d-m-Y H:i:s');
return parent::beforeSave();
}
请注意,保存时,上述示例中的小时,分钟和秒将始终为0。您还需要进行一些验证,以确保您的用户输入也是正确的d-m-Y格式,或者日期转换无法正常工作。
*修正错字新手 - &gt; newDate