php - Yii 格式文本字段日期时间模型

标签 php yii

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

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

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

最佳答案

一种选择是将日期转换为人类可读的格式以显示它,然后在保存之前恢复为数据库所需的格式。您可以在模型中编辑/创建 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 格式,否则日期转换将无法进行。

*修复了拼写错误 newdate->newDate

关于php - Yii 格式文本字段日期时间模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13269342/

相关文章:

php - 在 Yii 上出现 SQLSTATE[HY000] : General error: 2014 Cannot execute queries while other unbuffered queries are active 之类的错误

php - 如何调用yii的main.php中定义的logPath?

javascript - 启用禁用选择/下拉单选

javascript - 删除重置按钮验证

php - 上传到数据库时尝试获取非对象的属性

php - MySql 错误 #1005 - 无法创建表

php - 创建和更新记录的默认 Yii 模型场景是什么?

php - 带有复杂 $textField 的 CHtml::listData

php - 如何使 PHP 类属性只能通过类方法更改

php - 如何将 child 添加到特定节点