Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii2 kartik/date/datepicker在更新时显示错误的格式_Php_Date_Datepicker_Yii2_Active Form - Fatal编程技术网

Php Yii2 kartik/date/datepicker在更新时显示错误的格式

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')),

我在activeform中使用kartik日期选择器

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');
?>


有用的一个!非常感谢。有用的人!非常感谢。