转:Yii中使用datepicker的几种方式


一,前端展示
例1,最简单好用的方式。简单在于不需要$model

    <?php   
    $this->widget('zii.widgets.jui.CJuiDatePicker',array(  
        'attribute'=>'visit_time',  
        'language'=>'zh_cn',  
        'name'=>'visit_time',  
        'options'=>array(  
            'showAnim'=>'fold',  
            'showOn'=>'both',  
            'buttonImage'=>Yii::app()->request->baseUrl.'/images/calendar.gif',  
            'buttonImageOnly'=>true,  
            'minDate'=>'new Date()',  
            'dateFormat'=>'yy-mm-dd',  
        ),  
        'htmlOptions'=>array(  
            'style'=>'height:18px',  
        ),  
    ));  
    ?>

例2:

    <?php   
    $this->widget('zii.widgets.jui.CJuiDatePicker',array(  
        'attribute'=>'visit_time',  
        'language'=>'zh_cn',  
        'model'=>$repairInfo,  
        'name'=>$repairInfo->visit_time,  
        'options'=>array(  
            'showAnim'=>'fold',  
            'showOn'=>'both',  
            'buttonImage'=>Yii::app()->request->baseUrl.'/images/calendar.gif',  
            'buttonImageOnly'=>true,  
            'minDate'=>'new Date()',  
            'dateFormat'=>'yy-mm-dd',  
        ),  
        'htmlOptions'=>array(  
            'style'=>'height:18px',  
        ),  
    ));

例3:

    <div class="row">  
    <?php echo $form->labelEx($model,'time'); ?>  
    <?php $this->widget('zii.widgets.jui.CJuiDatePicker', array(  
    'model'=>$model,  
    'attribute'=>'time',  
    'options'=>array(  
        //'showAnim'=>'slideDown', // 'show' (the default), 'slideDown', 'fadeIn', 'fold'  
        'showOn'=>'button', // 'focus', 'button', 'both'  
        'buttonImage'=>Yii::app()->request->baseUrl.'/images/calendar.png',  
        'buttonImageOnly'=>true,  
        'htmlOptions'=>array('readonly'=>"readonly"),  
        'changeMonth'=>true,  
        'changeYear'=>true,  
        'mode'=>'datetime',  
        'dateFormat'=>'dd/mm/yy',  
    'htmlOptions'=>array(  
        'size'=>43,  
        'value'=>(!emptyempty($model->time))?(is_numeric($model->time))?date('d/m/Y',$model->time):$model->time:date('d/m/Y')),  

    )));?>  
    <?php echo $form->error($model,'time'); ?>  
    </div>

其他参数,可以参考jquery datepicker手册,然后将其放在上面的options里,并用单引号引起来。
http://jqueryui.com/demos/datepicker/

如设置最小日期为当前日期:'minDate'=>'new Date()',
二,后端获取
可以通过上面$model来获取,对应数据库中的一个表。
也可以使用js通过普通的方式获取其值。上面的日历,最终会生成一个input表单,用firebug查看其id,然后再获取该id的值,即可获取选择的日期。再通过get/post/ajax方式发送到后端。

http://zccst.iteye.com/blog/1172336

Archives