js验证两个日期是否是同一个年月,并计算天数差


/**
* 将日期转化为 yyyy-MM 格式 。
* 帮助验证 两个时间要在同一个年月份
* @param dateStr
*/
function formatYearMonth(b_date){
    var b_date_year = b_date.getYear();
    var b_date_month = b_date.getMonth()+1;

    if(b_date_month < 10){
        b_date_month = "0" + b_date_month ;
    }
    return b_date_year +""+ b_date_month;
}

function getDateSub(date_b,date_e){

    // 下面的一定要有,否则就会但会一个NaN
    var b_date  = new Date(Date.parse(date_b.replace(/-/g,'/')));
    var e_date  = new Date(Date.parse(date_e.replace(/-/g,'/')));

    var b_year_month = formatYearMonth(b_date);
    var e_year_month = formatYearMonth(e_date);

    if(b_year_month != e_year_month){
        alert("请保持停场开始日期和结束日期在同一个月份之内。");
        return -1 ;
    }
    return  parseInt(Math.abs((e_date-b_date)/86400000)) + 1 ;
}

/**
* 验证停场开始日期到结束日期一定是同一个月
*/
function validateDate(){
    var date_b = form.BEGIN_DATE.value;
    var date_e = form.END_DATE.value;
    // 验证日期格式
    if(!isDate(date_b)){
        alert("停场开始日期不是有效日期yyyy-mm-dd。");
        return false;
    }
    if(!isDate(date_e)){
        alert("停场结束日期不是有效日期yyyy-mm-dd。");
        return false
    }

    if (date_b > date_e){
        alert("停场开始日期的起始时间不能晚于结束时间");
        return false;
    }

    // 开始计算 两个日期差值(1-31一共是31 天,而不是 30 天。)
    var dateSub  = getDateSub(date_b,date_e);
    if(dateSub == -1){
        return false ;
    }

    form.TC_DAYS.value = dateSub ;

    return true ;

}

转载于:https://www.cnblogs.com/safely-pointer/p/4269646.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值