Php gridview过滤器中的Yii日期选择器在ajax请求后更改格式

Php gridview过滤器中的Yii日期选择器在ajax请求后更改格式,php,yii,datepicker,format,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(

喜欢这个主题。我在其中一个过滤器中有一个
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),
    ),

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

在您的CGRID视图中:

'afterAjaxUpdate' => 'reinstallDatePicker',
在Cgrid视图下方添加以下sript:

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' });
    }
");
或者(不确定您应该使用哪个)

编辑:

要返回日期,可以尝试使用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 );
    }
");

我真的不确定它是否会工作

检查您的模型是否将其转换为这种格式。您在请求后的筛选器字段中看到的是您的
$model
字段在
$model->search()之后的
confirmStart
值。我认为我的模型不会这样做。在数据库格式是一样的,我没有任何转换代码的模型。嘿!我正在使用
({dateFormat:'yy-mm-dd'})
,但它不起作用。我使用了你答案中的最后一个代码,现在可以使用了。我的意思是-格式没有改变。但这会导致一个问题——在ajax更新之后,日期从字段中消失。因为我有3个日期选择器,如果它留在那里会更好;)有什么想法吗?我更新了我的答案,但我不确定它是否有效。请随时通知我!不。美元符号在javascript中不起作用,尽管这个想法很好。如果我用实际日期替换
$model->confirmStart
,它会将数据放在文本区域内。我只是想弄清楚怎么去约会。无论如何,我会接受你的回答,因为我的基本问题是由你回答的。谢谢知道了!我添加了:
var start=$('#Projects_projStart').val()$(“#Projects_projStart”).datepicker('setDate',start)。再次感谢!更改答案中的代码,以便任何人都不必阅读此注释。
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 );
    }
");