@hollanditkzn

Как отобразить корректные данные при повторном нажатие?

Использую виджет dateControl kartik, Но выходит что когда выбираешь одну datetime, при повторном нажатие, тебя переносят на 30.12.1988 год. В скриншоте указывается в сроках указана первый раз 5.08.2017 9:00:00 и когда повторно на виджет нажимешь она просто переносит на декабрь 1988, хотя по логике должна оставаться 5.08.2017 9:00:00 a06639c84442472aa88273345f05558f.png
Вот как код я реализовал в frontend/cnfig/main.php
use \kartik\datecontrol\Module;
return => [
'modules' => [
	    'gridview' =>  ['class' => '\kartik\grid\Module'],
        'datecontrol' => [
            'class' => 'kartik\datecontrol\Module',
            'displaySettings' => [
            Module::FORMAT_DATE => 'dd-MM-yyyy',
            Module::FORMAT_TIME => 'hh:mm:ss a',
            Module::FORMAT_DATETIME => 'php:d M h:m',
            ],
            'saveSettings' => [
                Module::FORMAT_DATE => 'php:U',
                Module::FORMAT_TIME => 'php:H:i:s',
                Module::FORMAT_DATETIME => 'php:Y-m-d H:i:s',
            ],
            'widgetSettings' => [
                Module::FORMAT_DATE => [
                    'class' => 'yii\jui\DatePicker', // example
                    'options' => [
                        'dateFormat' => 'php:d-M-Y',
                        'options' => ['class'=>'form-control'],
                    ]
                ]
            ]
        ],
	],
]

И во вьюшки
use kartik\datecontrol\DateControl;
<?= $form->field($model, 'srok')->widget(
                    DateControl::className(), [
                    'language' => 'ru',
                    'value' => time(),
                    'type' => DateControl::FORMAT_DATETIME,
                    'displayFormat' => 'php:d M h:m',
                    'saveFormat' => 'php:Y-m-d H:i:s',
                    'widgetOptions' => [
                        'pluginOptions' => [
                            'autoclose' => true,
                            'format' => 'dd.mm.yyyy',
                        ]
                    ]
                ])->label('Срок');?>

Как я понял нужно что-то указать в value и saveFormat но по документации не совсем я понял что нужно пробовал 'saveFormat' => 'php:U', но тоже не получается.
  • Вопрос задан
  • 227 просмотров
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
'datecontrol' =>  [
            'class' => '\kartik\datecontrol\Module',
            'displaySettings' => [
                Module::FORMAT_DATE => 'd MMMM yyyy',
                Module::FORMAT_TIME => 'HH:mm',
                Module::FORMAT_DATETIME => 'd MMMM yyyy HH:mm'
            ],
            'autoWidgetSettings' => [
                Module::FORMAT_DATETIME => ['pluginOptions' => [
                                                 'autoclose' => true,
                                                 'todayHighlight' => true,
                                                 'startDate' => date('d m Y'),
                                           ],
                                           'readonly' => true],
                Module::FORMAT_DATE => ['pluginOptions' => [
                                                'autoclose' => true,
                                                'todayHighlight' => true,
                                                'startDate' => date('d m Y'),
                                       ],
                                       'readonly' => true],
                Module::FORMAT_TIME => ['readonly' => true]
            ],
            'saveSettings' => [
                Module::FORMAT_DATETIME => 'php:U',
                Module::FORMAT_DATE => 'php:U',
                Module::FORMAT_TIME => 'php:U',
            ],
            'ajaxConversion' => true,
        ]

А в представлении достаточно сделать так
$form->field($model, 'date_start')->widget(DateControl::className(),
                                                        ['type' => DateControl::FORMAT_DATE, 'displayTimezone' => 'Europe/Kiev']
                                                      )
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы