yii日历选取时间段,连个日历
如果第一个日历选择日期后,如何让第二个日历选取的日期只能是第一个日历选择的日期的后面;
如果第二个日历选择日期后,如何让第一个日历选取的日期只能是第二个日历选择的日期的前面;
求详细代码!!!
<b>从:</b>
    <?php
    $this->widget('zii.widgets.jui.CJuiDatePicker', array(
        'name'=>'FlUserLoginerror[from_date]',  // name of post parameter
        'language'=>'zh_cn',
        'options'=>array(
            'showAnim'=>'fold',
            'dateFormat'=>'yy-mm-dd',
            'yearRange'=>'1949:today',
        ),
        'htmlOptions'=>array(
            'style'=>'height:20px;'
        ),
        
    ));
    ?>
    <b>到:</b>
    <?php
    $this->widget('zii.widgets.jui.CJuiDatePicker', array(
        'name'=>'FlUserLoginerror[to_date]',
        'language'=>'zh_cn',
        'options'=>array(
            'showAnim'=>'fold',
            'dateFormat'=>'yy-mm-dd',
            'yearRange'=>'1949:today',
        ),
        'htmlOptions'=>array(
            'style'=>'height:20px;'
        ),
    ));
    ?>

解决方案 »

  1.   

    给你推荐一款前端日历控件吧,my97datepicker,只要两句话就可以实现你所需要的功能,12306就用的这个
      

  2.   

    这个我也想到了,可是我想在yii 里面用,不知道怎么用,这个my97datepicker是一个外部控件,应该定义在extensions下!然后用Windget!之后不知道怎么写了!
    官网上说是这样用http://www.my97.net/dp/demo/index.htm
    里面选择第一个日期的时候,第二个日期选择框自动弹出
    日期从:   至   
    注意:下面第一个控件代码的写法
    <input id="d5221" class="Wdate" type="text" onFocus="var d5222=$dp.$('d5222');WdatePicker({onpicked:function(){d5222.focus();},maxDate:'#F{$dp.$D(\'d5222\')}'})"/>

    <input id="d5222" class="Wdate" type="text" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d5221\')}'})"/>注意:$dp.$是一个内置函数,相当于document.getElementById
      

  3.   

    我曾试过,在zii.widgets.jui.CJuiDatePicker中的数组里面写一个ajax选择日期后触发ajax把内容提交到一个动作里面,然后返回数据,但是不知道怎么在模型里面掉这个数据!
      

  4.   


    参考代码:
    <script type="text/javascript"> 
        $(document).ready(function(){
            $("<?php echo "#".ucfirst(Yii::app()->controller->id)."_top_time_start"; ?>").change(function(){
                var d1 = $("<?php echo "#".ucfirst(Yii::app()->controller->id)."_top_time_start"; ?>").val();
                    d1 = d1.replace(/-/g,"/")
                var d2 = new Date(d1);
                    d2.setTime(d2.getTime()+24*60*60*1000);
                var s = d2.getFullYear()+"-" + (d2.getMonth()+1) + "-" + d2.getDate();
                    $("<?php echo "#".ucfirst(Yii::app()->controller->id)."_top_time_end"; ?>").datepicker('option', 'minDate', s);
            });
        });
    </script><span id="date_pan">
    &nbsp;&nbsp;从<?php $this->widget('zii.widgets.jui.CJuiDatePicker',
    array(
    'language'=>'zh_cn',
    'model'=>$model,
    'attribute'=>'top_time_start',
    'options'=>array(
    'showAnim'=>'fold',  
    'showOn'=>'both',
    'buttonImage'=>SITE_URL.yii::app()->theme->baseUrl.HT_IMG_URL.'calendar.png',
    'minDate'=>'new Date()',
    'maxDate'=>date('Y-m-d',strtotime("+30 days")),
    //'yearRange'=>'0:+1',
    //'changeYear'=> true,
    //'changeMonth'=> true,
    //'buttonImageOnly'=>true,
    'dateFormat'=>'yy-mm-dd',
    'altFormat'=>'yy-mm-dd',
    ),
    'htmlOptions'=>array(
    'readonly'=>'readonly',  
    'style'=>'width:100px;', 
    ),
    ));
    ?>
    开始,到
    <?php $this->widget('zii.widgets.jui.CJuiDatePicker',
    array(
    'language'=>'zh_cn',
    'model'=>$model,  
    'attribute'=>'top_time_end',
    'options'=>array(
    'showAnim'=>'fold',  
    'showOn'=>'both',
    'buttonImage'=>SITE_URL.yii::app()->theme->baseUrl.HT_IMG_URL.'calendar.png',
    'minDate'=>'new Date()',
    'maxDate'=>date('Y-m-d',strtotime("+12 months")),
    //'yearRange'=>'0:+1',
    //'changeYear'=> true,
    //'changeMonth'=> true,
    //'buttonImageOnly'=>true,
    'dateFormat'=>'yy-mm-dd',
    'altFormat'=>'yy-mm-dd',
    ),
    'htmlOptions'=>array(
    'readonly'=>'readonly',  
    'style'=>'width:100px;', 
    ),
    ));
    ?>结束
    <?php echo  $form ->error($model,'top_time_start'); ?>
    <?php echo  $form ->error($model,'top_time_end'); ?>
    </span>