Yii2日期格式化程序无法以活动形式工作

时间:2017-02-20 06:04:08

标签: php yii2

我在配置文件日期格式中设置为:

'dateFormat' => 'yy-MM-dd',

但我无法找到以活动形式获取此格式的日期的方法: 我试过了:

<?= $form->field($model,
    'mydate':date,

但这会给出错误 任何帮助都会很好:)

2 个答案:

答案 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,则覆盖beforeSaveafterFind)或使用timestampAttributedate验证工具中的timestampAttributeFormat

对于高级案例,您可以使用yii2-datecontrol之类的内容。