下拉菜单选时间段

客户的奇葩要求: 需要按日期条件查询,日历控件选择开始时间结束时间还嫌麻烦

所以,做了个比较low的下拉框选择几个已经规定好的时间段

效果如下:

结束日期不会超过当前日期,超过当前月份的选项不可选(例如:当前是11月22日,就不可点击十二月,点击11月或者下半年,结束日期都会等于2018-11-22)

<html>
<body>
<select onchange="getdate(this.options[this.options.selectedIndex].value)" id="select1">
<option value="">--请选择--</option>
 <option value='January'>1月</option>
<option value='February'>2月</option>
<option value='March'>3月</option>
<option value='April'>4月</option>
<option value='May'>5月</option>
<option value='June'>6月</option>
<option value='July'>7月</option>
<option value='August'>8月</option>
<option value='September'>9月</option>
<option value='October'>10月</option>
<option value='November'>11月</option>
<option value='December'>12月</option>
<option value='1quarterr'>1季度</option>
<option value='2quarterr'>2季度</option>
<option value='3quarterr'>3季度</option>
<option value='4quarterr'>4季度</option>
<option value='1halfyear'>上半年</option>
<option value='2halfyear'>下半年</option>
<option value='fullyear'>全年</option>
</select>
 
  <input type="text" id="begintime">
  <input type="text" id="endtime">

</body>
<script>
     var date=new Date()
     var year=date.getFullYear();
     var month=date.getMonth()+1;
    //var month=5;
 function getdate(obj){
     if(obj==""){
        return;
     }

     if(obj=="January"){
       determine(1);
     }
     if(obj=="February"){
       determine(2);
     }
     if(obj=="March"){
        determine(3);
     }
     if(obj=="April"){
        determine(4);
     }
     if(obj=="May"){
       determine(5);
     }
     if(obj=="June"){
       determine(6);
     }
     if(obj=="July"){
       determine(7);
     }
     if(obj=="August"){
       determine(8);
     }
     if(obj=="September"){
        determine(9);
     } 
      if(obj=="October"){
        determine(10);
     } 
     
      if(obj=="November"){
       determine(11);
     } 
      if(obj=="December"){
        determine(12);
     } 

      if(obj=="1quarterr"){
         determine_q(1);
     } 
      if(obj=="2quarterr"){
        determine_q(2);
     } 
      if(obj=="3quarterr"){
      
        determine_q(3);
     }  
       if(obj=="4quarterr"){
        determine_q(4);
     }  
       if(obj=="1halfyear"){
       determine_y(1);
     }  
     if(obj=="2halfyear"){
       determine_y(2);
     }  
      if(obj=="fullyear"){
       assignment(year+"-01-01",year+"-"+month+"-"+date.getDate());
     }  
 }
 
 function compareTime(t1,t2){
    var d1 = new Date(t1.replace(/\-/g, "\/"));  
    var d2 = new Date(t2.replace(/\-/g, "\/"));  
    if(d1 < d2){  
        return false;  
    }else{
       return true;
    }
 }
 function determine(m){
     if(month==m){
         
          if(m<10){
             m="0"+m;
          }
           assignment(year+"-"+m+"-01",year+"-"+m+"-"+date.getDate());
        }else if(month<m){
          alert("查看时间不能大于当前月份");
         var options =  document.getElementById("select1").children;
          options[0].selected=true;
          assignment("","");
          return;
        }else{
           if(m<10){
             m="0"+m;
          }
          assignment(year+"-"+m+"-01",year+"-"+m+"-"+new Date(year,parseInt(m),0).getDate());
        }
       
 }
 
 function determine_q(m){

 var begintime;
 var endtime;
     if(m==1){
       begintime=year+"-01-01";
       endtime=year+"-03-31";
     }else if(m==2){
       begintime=year+"-04-01"; 
       endtime=year+"-06-30";
     }else if(m==3){
       begintime=year+"-07-01"; 
       endtime=year+"-09-31";
     }else{
       begintime=year+"-10-01"; 
       endtime=year+"-12-31";
     }
   
     if(compareTime(begintime,year+"-"+month+"-"+date.getDate())){
     
        alert("查看时间不能大于当前月份");
         var options =  document.getElementById("select1").children;
          options[0].selected=true;
        assignment("","");
        return;
     }else if(compareTime(endtime,year+"-"+month+"-"+date.getDate())){
        
         endtime=year+"-"+month+"-"+date.getDate();
         assignment(begintime,endtime);
     }else{
        assignment(begintime,endtime);
     }
     
 }
 function determine_y(m){
     var begintime;
     var endtime;
     if(m==1){
        begintime=year+"-01-01";
        endtime=year+"-06-30";
     }else if(m==2){
        begintime=year+"-07-01";
        endtime=year+"-12-31";
     }
     
     if(compareTime(begintime,year+"-"+month+"-"+date.getDate())){
        alert("查看时间不能大于当前月份");
        var options =  document.getElementById("select1").children;
        options[0].selected=true;
        assignment("","");
        return;
     }else if(compareTime(endtime,year+"-"+month+"-"+date.getDate())){
       endtime=year+"-"+month+"-"+date.getDate();
       assignment(begintime,endtime);
     }else{
        assignment(begintime,endtime);
     }
       
 }

 
 function assignment(begintime,endtime){
    document.getElementById("begintime").value=begintime;
    document.getElementById("endtime").value=endtime;
 }

</script>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值