@pantaleone48

Не правильно отображается дата при использовании модуля DateControl (kartik-v)?

Добрый день! Использую модуль DateControl, значения сохраняю в формате unix, вывожу в интупе в формате 05.07.2020 и значение по умолчанию выводится 01.01.1970. При этом, если сохранять не в unix формате, то все нормально
Настройки в конфиге web
'datecontrol' =>  [
            'class' => 'kartik\datecontrol\Module',
            
            'displaySettings' => [
                Module::FORMAT_DATE => 'dd.mm.yyyy',
                Module::FORMAT_TIME => 'HH:mm:ss a',
                Module::FORMAT_DATETIME => 'dd-MM-yyyy HH:mm:ss a',
            ],

    
            'saveSettings' => [
                Module::FORMAT_DATE => 'php:U', 
                Module::FORMAT_TIME => 'php:H:i:s',
                Module::FORMAT_DATETIME => 'php:Y-m-d H:i:s',
            ],

            'displayTimezone' => 'Europe/Moscow',

            'saveTimezone' => 'UTC',

            'autoWidget' => true,

            'ajaxConversion' => true,
            
            'autoWidgetSettings' => [
                Module::FORMAT_DATE => ['type'=>2, 'pluginOptions'=>['autoclose'=>true]],
                Module::FORMAT_DATETIME => [], // setup if needed
                Module::FORMAT_TIME => [], // setup if needed
            ],

            'widgetSettings' => [
                Module::FORMAT_DATE => [

                    'options' => [
                        'dateFormat' => 'php:d.m.Y',
                        'options' => ['class'=>'form-control'],
                    ],
                
                ]
            ]
        ]


Во вьюшке
<?php
       echo $form->field($model, 'date')->widget(DateControl::classname(), [
       'value'=>date("d.m.Y"),
       'type'=>DateControl::FORMAT_DATE,
       'displayFormat' => 'php:d.m.Y'
]);
?>

5f01bced945a2608827350.png
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
maksim92
@maksim92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
Вам нужно перед сохранением в базу переконвектировать дату в unix формат сделать это можно так:
(new DateTimeImmutable('05.07.2020'))->getTimestamp();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
kawabanga
@kawabanga
Бью себя по рукам за каждый ответ на глупый вопрос
глобально таймзона установлена в конфиге?

'timezone' => 'UTC',
'components'=>[
'formatter' => [
            'timeZone' => 'America/Chicago', 
        ],
]
Ответ написан
Ваш ответ на вопрос

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

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