Yii Kartik DateControl Time Formatter Only显示12:30更新

时间:2016-02-06 12:59:29

标签: yii yii2

我正在使用Yii Kartik DateControl小部件来允许时间选择以一种PHP格式显示,但保存在另一种格式中。我遇到的主要问题是,当我保存时保存时间选择并返回(编辑模型)它将始终显示12:30 pm。

例如,我选择" 6:30 pm"从时间选择器。 它正确地保存在数据库中#18; 18:30:00"。 在更新时,显示屏应显示为:" 6:30 pm",而是显示" 12:30 pm"。 无论节省的时间是多少,它总是切换到下午12点30分和#34;在更新。我知道它会切换,因为小部件时间按钮以绿色突出显示。

以下是我的模块设置:

'modules' => [
    'datecontrol' =>  [
        'class' => 'kartik\datecontrol\Module',
        'displaySettings' => [
            Module::FORMAT_DATE => 'mm/dd/yyyy',
            Module::FORMAT_TIME => 'HH:mm a',
            Module::FORMAT_DATETIME => 'mm/dd/yyyy HH:mm a', 
        ],
        'saveSettings' => [
            Module::FORMAT_DATE => 'php:Y-m-d', // saves as unix timestamp
            Module::FORMAT_TIME => 'php:H:i:s',
            Module::FORMAT_DATETIME => 'php:Y-m-d H:i:s',
        ],
        'displayTimezone' => 'America/New_York',
        'saveTimezone' => 'America/New_York',
        'autoWidget' => true,
        'ajaxConversion' => true,
        'autoWidgetSettings' => [
            Module::FORMAT_DATE => ['type'=>2, 'pluginOptions'=>['autoclose'=>true]], // example
            Module::FORMAT_DATETIME => [], // setup if needed
            Module::FORMAT_TIME => [], // setup if needed
        ],

这是我视图中的设置:

<?= $form->field($event, 'start_time')->label(false)->widget(DateControl::classname(), [
                'type' => DateControl::FORMAT_TIME,
        ]); ?>

我要么在这里做错了,要么小部件中有一个错误,但我还没弄明白。 我尝试过的事情:

  1. 将saveTimezone更改为&#39; UTC&#39;
  2. 在视图级别设置窗口小部件本身的时区
  3. 将AjaxConversion设置为false
  4. 将autoWidget设置为false
  5. 这些都没有达到预期的效果。

0 个答案:

没有答案