我在配置文件日期格式中设置为:
'dateFormat' => 'yy-MM-dd',
但我无法找到以活动形式获取此格式的日期的方法: 我试过了:
<?= $form->field($model,
'mydate':date,
但这会给出错误 任何帮助都会很好:)
答案 0 :(得分:0)
您必须使用DateTime 将日期替换为所需格式。
例如,如果你有Unix格式的数据并希望转换为'd-M-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); ?>
答案 1 :(得分:0)
此处dateFormat
是\Yii::$app->formatter
组件的属性。
要明确使用此设置,您应使用格式化程序
\Yii::$app->formatter->asDate($date)
或 i18n 组件
\Yii::t('app', 'The date is: {0,date}', $date);
此选项在date validator中用作默认format
。
所以您只需要添加date
规则(在模型的rules
函数中):
['mydate', 'date']
然后你可以添加你的视图
<?= $form->field($model, 'mydate', [])->input('text', []); ?>
为了使用数据库,您可以手动将日期属性转换为/从db格式(例如,如果使用ActiveRecord,则覆盖beforeSave
和afterFind
)或使用timestampAttribute和date
验证工具中的timestampAttributeFormat。
对于高级案例,您可以使用yii2-datecontrol之类的内容。