$model->datetime
ですd-m-Y H:i:s
。_
<?php echo $form->textField($model,'datetime'); ?>
入力の値を dmY にしたいのですが、どのようにフォーマットできますか?
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