$model->datetime
是d-m-Y H:i:s
。_
<?php echo $form->textField($model,'datetime'); ?>
我想输入的值只是 dmY,我该如何格式化?
一种选择是将日期转换为人类可读的格式以显示它,然后在保存之前恢复为数据库所需的格式。您可以在模型中编辑/创建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。您还需要进行一些验证以确保您的用户输入也是正确的 dmY 格式,否则日期转换将不起作用。
*修正错字newdate->newDate