网格视图过滤器中的Yii datepicker在ajax请求后更改格式

时间:2013-05-16 16:53:35

标签: php yii datepicker format

像在主题中一样。我在其中一个过滤器中有CGridView和Yii datepicker。我的格式设置为yy-mm-dd,但在我输入值并GridView使用ajax调整数据后 - 格式更改为:dd.mm.yy。这是我的代码:

array(
        'name' => 'confirmStart',
        'filter' => $this->widget('zii.widgets.jui.CJuiDatePicker', 
            array(
                'model' => $model,
                'attribute' => 'confirmStart',
                'language' => 'pl',
                'i18nScriptFile' => 'jquery.ui.datepicker-ja.js',
                'htmlOptions' => array(
                    'id' => 'Projects_confirmStart',
                    'dateFormat' => 'yy-mm-dd',
                ),
                'defaultOptions' => array(  // (#3)
          'showOn' => 'focus', 
          'dateFormat' => 'yy-mm-dd',
          'showOtherMonths' => true,
          'selectOtherMonths' => true,
          'changeMonth' => true,
          'changeYear' => true,
          'showButtonPanel' => true,
      )
            ),
            true),
    ),

1 个答案:

答案 0 :(得分:3)

不知道这是否会解决您的问题,但在CGridView中使用datepicker时遇到了一些问题。为了解决这个问题,我需要重新安装datepicker:

在你的CGridView中:

'afterAjaxUpdate' => 'reinstallDatePicker',

在Cgrid View下方添加以下内容:

Yii::app()->clientScript->registerScript('re-install-date-picker', "
    function reinstallDatePicker(id, data) {
        $('#Projects_confirmStart').datepicker();
    }
");

如果仍然无法解决您的问题,您可以尝试:

Yii::app()->clientScript->registerScript('re-install-date-picker', "
    function reinstallDatePicker(id, data) {
        $('#Projects_confirmStart').datepicker({ dateFormat: 'yy-mm-dd' });
    }
");

或(不确定你应该使用的那个)

Yii::app()->clientScript->registerScript('re-install-date-picker', "
    function reinstallDatePicker(id, data) {
        $('#Projects_confirmStart').datepicker('option', 'dateFormat', 'yy-mm-dd');
    }
");

修改:

要设置日期,您可以尝试使用javascript设置日期:

Yii::app()->clientScript->registerScript('re-install-date-picker', "
    function reinstallDatePicker(id, data) {
        $('#Projects_confirmStart').datepicker('option', 'dateFormat', 'yy-mm-dd');
        var start = $('#Projects_confirmStart').val();
        $('#Projects_confirmStart' ).datepicker( 'setDate', start );
    }
");

我真的不确定它会起作用