javaScript 时间日期对比

思路:比较 2016-06-26 11:25 跟 2016-08-26 11:50
开始思路是想通过比较数字来比较两者大小:
即:20160626 跟 20160826 比较
1125 跟 1150 比较
后来发现:如果时间相同的时候特别难比较,还会出错。(有兴趣的朋友可以试一下。)
最后换用了,先把日期时间格式减去符号,然后换成new Date()的格式,然后再比较.

<script type="text/javascript">
var fields= [            //为了方便取出名字相似的id
    "field33655",   //fields[0]开始日期
    "field33657",   //fields[1]开始时间
    "field33656",   //fields[2]结束日期
    "field33658"    //fields[3]结束时间
];

//文档加载是执行的js
jQuery(document).ready(function(){
         console.log("进入流程!");
    //数据效验
    checkCustomize = function (){
        return  calculateDateFields();//true提交流程,false取消提交
     };
});

//计算日期
function calculateDateFields(){ 
       var startDate=jQuery('#'+fields[0]).val();//开始日期
       var arr=startDate.split("-");
       var starttime = new Date(arr[0], arr[1], arr[2]);
       var starttimes = starttime.getTime();

    var endDate=jQuery('#'+fields[2]).val();//结束日期
        var arrs=endDate.split("-");
        var lktime = new Date(arrs[0], arrs[1], arrs[2]);
        var lktimes = lktime.getTime();


       var now= new Date(); 
        var date=now.getFullYear()+"-"+((now.getMonth()+1)<10?"0":"")+(now.getMonth()+1)+"-"+(now.getDate()           <10?"0":"")+now.getDate() 
        var arrss=date.split("-");
        var nowtime= new Date(arrss[0], arrss[1], arrss[2]);
        var nowtimes= nowtime.getTime();
         if(starttimes >nowtimes&&lktimes>nowtimes){
        if (starttimes >lktimes) {
             alert('开始时间大于离开时间,请检查');
             jQuery('#'+fields[2]).val('');//清空结束日期
               jQuery('#'+fields[2]+'span').text('');//清空结束日期
             return false;
        }
        else if(starttimes ==lktimes){
               if(calculateTimeFields()){
                       return true; 
               }
               else{
                     jQuery('#'+fields[3]).val('');//清空结束时间
                         jQuery('#'+fields[3]+'span').text('');//清空结束时间
                     return false;
               }
       }
        else{
               if(calculateTimeFields()){
                    return true; 
              }else{
                  alert("开始时间不能大于结束时间");
                  jQuery('#'+fields[3]).val('');//清空结束时间
                      jQuery('#'+fields[3]+'span').text('');//清空结束时间
                  return false;
               }
         }
      }else if(lktimes>nowtimes&&starttimes<=nowtimes){
            alert("请假开始日期要比当前系统的日期晚,请检查");
      }else if(lktimes<=nowtimes&&starttimes>nowtimes){
           alert("请假结束日期要比当前系统的日期晚,请检查");
      }
      else{
          alert("请假开始日期与结束日期要比当前系统的日期晚,请检查");
      }
}
//计算时间
function calculateTimeFields(){ 
        console.log("进入函数2");
       var checkresult= [0,0];
       var beginTime = jQuery('#'+fields[0]).val()+ jQuery('#'+fields[1]).val();
       var endTime= jQuery('#'+fields[2]).val()+ jQuery('#'+fields[3]).val();
       var beginTimes=beginTime .substring(0,10).split('-');
       var endTimes = endTime.substring(0, 10).split('-');
       beginTime = beginTimes[1] + '-' + beginTimes[2] + '-' + beginTimes[0] + ' ' + beginTime.substring(10, 19);
       endTime = endTimes[1] + '-' + endTimes[2] + '-' + endTimes[0] + ' ' + endTime.substring(10, 19);
       var a = (Date.parse(endTime) - Date.parse(beginTime)) / 3600 / 1000;
       if (a < 0) {
        alert("开始时间不能大于结束时间");
        return false;
       } else if (a > 0) {
        return true;
       } else if (a == 0) {
        alert("开始时间不能与结束时间相等!");
        return false;
       } else {
        return 'exception'
    }

}
</script>

详情可参考: <转>

js日期比较(yyyy-mm-dd)

 function duibi(a, b) {
    var arr = a.split("-");
    var starttime = new Date(arr[0], arr[1], arr[2]);
    var starttimes = starttime.getTime();

    var arrs = b.split("-");
    var lktime = new Date(arrs[0], arrs[1], arrs[2]);
    var lktimes = lktime.getTime();

    if (starttimes >= lktimes) {

        alert('开始时间大于离开时间,请检查');
        return false;
    }
    else
        return true;

}



js时间比较(yyyy-mm-dd hh:mi:ss)

function comptime() {
    var beginTime = "2009-09-21 00:00:00";
    var endTime = "2009-09-21 00:00:01";
    var beginTimes = beginTime.substring(0, 10).split('-');
    var endTimes = endTime.substring(0, 10).split('-');

    beginTime = beginTimes[1] + '-' + beginTimes[2] + '-' + beginTimes[0] + ' ' + beginTime.substring(10, 19);
    endTime = endTimes[1] + '-' + endTimes[2] + '-' + endTimes[0] + ' ' + endTime.substring(10, 19);

    alert(beginTime + "aaa" + endTime);
    alert(Date.parse(endTime));
    alert(Date.parse(beginTime));
    var a = (Date.parse(endTime) - Date.parse(beginTime)) / 3600 / 1000;
    if (a < 0) {
        alert("endTime小!");
    } else if (a > 0) {
        alert("endTime大!");
    } else if (a == 0) {
        alert("时间相等!");
    } else {
        return 'exception'
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿冰介

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值