我設置配置文件中的日期格式爲:Yii2日期格式的活性形式不工作
'dateFormat' => 'yy-MM-dd',
,但我不能找到讓日期這種格式在活性形式的方式: 我想:
<?= $form->field($model,
'mydate':date,
但是這給錯誤 任何幫助將是不錯:)
我設置配置文件中的日期格式爲:Yii2日期格式的活性形式不工作
'dateFormat' => 'yy-MM-dd',
,但我不能找到讓日期這種格式在活性形式的方式: 我想:
<?= $form->field($model,
'mydate':date,
但是這給錯誤 任何幫助將是不錯:)
您必須使用日期時間更換日期到所需要的格式。
例如,如果你在UNIX格式的數據和要轉換爲「DM-Y」:
\DateTime::createFromFormat('U',$this->date)->format('d-m-Y')
如果你總是需要這種轉換,你可以創建模型中的getter函數:
public function getDateInFormat()
{
return \DateTime::createFromFormat('U',$this->date)->format('d-m-Y');
}
而且鑑於:
<?= $form->field($model,$model->dateInFormat); ?>
好吧,我聽到你 - 所以你說是沒有辦法爲所有人設置一些東西?每次我處理日期時,我都需要進行轉換?在datepicker中的設置是沒有用的?這是個壞消息! –
是的,我知道)但這是常見的做法 –
這裏dateFormat
是的屬性組件。
爲了明確使用此設置,您應該使用格式化
\Yii::$app->formatter->asDate($date)
或國際化組件
\Yii::t('app', 'The date is: {0,date}', $date);
而且這個選項在date validator用作默認format
。
因此,所有你需要的是添加date
規則(在模型的rules
功能):
['mydate', 'date']
然後你就可以在你看來
<?= $form->field($model, 'mydate', [])->input('text', []); ?>
只需添加爲了工作使用數據庫,您可以手動將日期屬性轉換爲/從數據庫格式(例如,如果使用ActiveRecord,則覆蓋beforeSave
和afterFind
),或者在012中使用timestampAttribute和驗證器。
對於高級案例,您可以使用類似yii2-datecontrol之類的東西。
你想選擇或驗證的格式。你使用jquery日期選擇器 –