2

$model->datetimeですd-m-Y H:i:s。_

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

入力の値を dmY にしたいのですが、どのようにフォーマットできますか?

4

1 に答える 1

3

1 つのオプションは、日付を人間が読める形式に変換して表示し、保存する前にデータベースが必要とする形式に戻すことです。モデルのメソッドを編集/作成して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

于 2012-11-07T12:22:34.507 に答える