Php Yii2 kartik/date/datepicker在更新时显示错误的格式
我在activeform中使用kartik日期选择器Php Yii2 kartik/date/datepicker在更新时显示错误的格式,php,date,datepicker,yii2,active-form,Php,Date,Datepicker,Yii2,Active Form,我在activeform中使用kartik日期选择器 use kartik\date\DatePicker; 我的活动表单字段: <?= $form->field($model, 'transferred_date')->widget(DatePicker::className(), [ 'value' => date('d-M-Y', strtotime('+2 days')),
use kartik\date\DatePicker;
我的活动表单字段:
<?= $form->field($model, 'transferred_date')->widget(DatePicker::className(), [
'value' => date('d-M-Y', strtotime('+2 days')),
'options' => ['placeholder' => 'Select date ...'],
'pluginOptions' => [
'format' => 'dd-mm-yyyy',
'todayHighlight' => true
]
])->label('Transferred Date');
?>
当我更新时,它显示为
我需要这个
您需要将日期格式化为:
'value' => $model->isNewRecord ? date('d-m-Y', strtotime('+2 days')) : date('d-m-Y', strtotime($model->transferred_date));
您需要按如下方式设置日期格式:
'value' => $model->isNewRecord ? date('d-m-Y', strtotime('+2 days')) : date('d-m-Y', strtotime($model->transferred_date));
您必须向小部件提供格式化的日期
- 使用
时,您可以覆盖特定型号的ActiveForm
,以格式化日期,并覆盖afterFind()
字段的默认时间戳值transfered\u date
- 对于格式化,如果使用
,则可以通过在配置文件advanced app
中定义来使用该组件,如果使用common/config/main.php
,则可以通过basic app
来使用该组件 在配置文件中添加以下内容config/web.php
将以下内容添加到您的模型中'components'=>[ 'formatter' => [ 'dateFormat'=>'dd-MM-yyyy', 'datetimeFormat' => 'yyyy-MM-dd HH:mm:ss', ], ]
public function afterFind() { parent::afterFind (); $this->transferred_date=Yii::$app->formatter->asDate($this->transferred_date); }
<?php echo $form->field($model, 'transferred_date')->widget(DatePicker::class, [
'options' => ['placeholder' => 'Select date ...'],
'pluginOptions' => [
'format' => 'dd-mm-yyyy',
'todayHighlight' => true,
],
])->label('Transferred Date');
您必须向小部件提供格式化日期
- 使用
ActiveForm
时,您可以覆盖特定型号的afterFind()
,以格式化日期,并覆盖transfered\u date
字段的默认时间戳值
- 对于格式化,如果使用
advanced app
,则可以通过在配置文件common/config/main.php
中定义来使用该组件,如果使用basic app
,则可以通过config/web.php
来使用该组件
在配置文件中添加以下内容
'components'=>[
'formatter' => [
'dateFormat'=>'dd-MM-yyyy',
'datetimeFormat' => 'yyyy-MM-dd HH:mm:ss',
],
]
将以下内容添加到您的模型中
public function afterFind() {
parent::afterFind ();
$this->transferred_date=Yii::$app->formatter->asDate($this->transferred_date);
}
现在将字段定义更改为下面,并刷新页面
<?php echo $form->field($model, 'transferred_date')->widget(DatePicker::class, [
'options' => ['placeholder' => 'Select date ...'],
'pluginOptions' => [
'format' => 'dd-mm-yyyy',
'todayHighlight' => true,
],
])->label('Transferred Date');
好的,我的朋友,你所需要的只是将活动表单中日期选择器小部件的格式更改为如下所示
<?= $form->field($model, 'transferred_date')->widget(DatePicker::className(), [
'value' => date('d-M-Y', strtotime('+2 days')),
'options' => ['placeholder' => 'Select date ...'],
'pluginOptions' => [
'format' => 'dd-mm-yy',
'todayHighlight' => true
]
])->label('Transferred Date');
?>
好的,我的朋友,你所需要的只是将活动表单中日期选择器小部件的格式更改为如下所示
<?= $form->field($model, 'transferred_date')->widget(DatePicker::className(), [
'value' => date('d-M-Y', strtotime('+2 days')),
'options' => ['placeholder' => 'Select date ...'],
'pluginOptions' => [
'format' => 'dd-mm-yy',
'todayHighlight' => true
]
])->label('Transferred Date');
?>
有用的一个!非常感谢。有用的人!非常感谢。