Yii Framework Forum: CJuiDatePicker, локализация, формат даты - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

CJuiDatePicker, локализация, формат даты локализован родными средствами, и потом не могу поменять формат даты Rate Topic: -----

#1 User is offline   Karasko 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 89
  • Joined: 14-July 09
  • Location:Russia

Posted 03 February 2010 - 05:21 PM

Вот вывел datepicker, в настройках поставил язык ru, и он теперь формат даты не даёт поменять, или я не там меняю.

$this->widget('zii.widgets.jui.CJuiDatePicker', array(
    'language'=>'ru',
    'model'=>$model,
    'attribute'=>'calendar',
    'options'=>array(
        'showAnim'=>'fold',
        'dateFormat'=>'yy-mm-dd',
    ),
   
    'htmlOptions'=>array(
        'style'=>'height:20px;'
    ),
)); ?>

0

#2 User is offline   seb 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 240
  • Joined: 29-June 09

Posted 05 February 2010 - 02:37 AM

View PostKarasko, on 03 February 2010 - 05:21 PM, said:

Вот вывел datepicker, в настройках поставил язык ru, и он теперь формат даты не даёт поменять, или я не там меняю.

$this->widget('zii.widgets.jui.CJuiDatePicker', array(
    'language'=>'ru',
    'model'=>$model,
    'attribute'=>'calendar',
    'options'=>array(
        'showAnim'=>'fold',
        'dateFormat'=>'yy-mm-dd',
    ),
   
    'htmlOptions'=>array(
        'style'=>'height:20px;'
    ),
)); ?>



Насколько я помню, проблема в том, что при установке языка для DatePicker выставляются региональные настройки, в число которых входит и формат даты. При этом то, что мы пишем в dateFormat перекрывается форматом, указанным в региональных настройках. Возможно, в последней версии виджета это уже исправлено.
Я обходил это ограничение так (см. скрипт, регистрируемый перед выводом виджета):
        $language = Yii::app()->getLanguage();
        $dateFormat = 'dd/mm/yy';

        //date format is set from i18n defaults, override it here
        $js = "jQuery.datepicker.regional['$language'].dateFormat = '$dateFormat';";
        Yii::app()->getClientScript()->registerScript('setDateFormat', $js);

        $this->widget('system.zii.widgets.jui.CJuiDatePicker',
          array(
           'model'=>$this->model,
           'attribute'=>$this->attribute,
           'language'=>$language,
           'htmlOptions'=>array('size'=>10, 'maxlength'=>15),

           'options' => array (
                'showAnim'=>'show',
                'dateFormat'=>$dateFormat,
                'showButtonPanel' => true,
                'showOn' => 'both',
                'buttonImageOnly' => true,
                'buttonImage'=>bu('css/design/admin/calendar.gif'),
                //set calendar z-index higher then UI Dialog z-index 
                'beforeShow'=>"js:function() {
                    $('.ui-datepicker').css('font-size', '0.8em');
                    $('.ui-datepicker').css('z-index', parseInt($(this).parents('.ui-dialog').css('z-index'))+1);
                }",
            ),
          )
        );

1

#3 User is offline   Karasko 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 89
  • Joined: 14-July 09
  • Location:Russia

Posted 05 February 2010 - 07:21 AM

Спасибо, работает ::)
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users