我设置配置文件中的日期格式为: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日期选择器 –