Yii格式textField日期时间模型

时间:2012-11-07 11:59:52

标签: php yii

$model->datetimed-m-Y H:i:s

<?php echo $form->textField($model,'datetime'); ?>

我想输入的值只是d-m-Y,我该如何格式化?

1 个答案:

答案 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