获取字符串中数字,并计算指定时间的后几个月是几月几号

本文介绍了一种通过解析会员卡使用周期输入并自动计算会员卡到期时间的方法。具体包括规定周期输入格式、从周期字符串中提取有效数字以及利用这些信息进行日期计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做项目的时候遇见一个需求,要求知道会员卡种类,会员卡开始时间和会员卡使用有效周期自动得到会员卡到期时间。所以就出现了几个难点。一、有效周期写法不一定;二、如何获取使用周期内的数字;三、如何自动得到会员卡到期时间。以下就来解决一下这些问题:

一、规定周期输入格式:

    var vperiod=$("#vperiod").val();
    var pattern1=/^\d{1,2}个月/;
    if(!(pattern1.test(vperiod)||vperiod==null)){
        alert("会员卡使用周期输入格式为:xx个月");
        return false;
    }

二、如何获取使用周期内的数字

function getudqsj(){
    var ubksj=$('#ubksj').val();
    var vperiod=$("#vperiod").val();
    var array = ubksj.split("-");
    var dt = new Date(array[0], array[1], array[2]);

    var times="";

   //获取字符串中的数字

    for(var i=0;i<vperiod.length;i++){  
        if("0123456789".indexOf(vperiod.substr(i,1))>-1)  
            times+=vperiod.substr(i,1)  
    }
    var monthOrDay=vperiod.indexOf("个月");
    if(-1!=monthOrDay){
        var udqsj=DateAdd( "m",parseInt(times),dt);
         $('#udqsj').val(udqsj);
    }


三、自动获取到期时间 

/*计算时间  */
function   DateAdd(interval,number,date) {
   switch(interval){   
      case   "m"   :   {  
        if(date.getMonth()+number>12){
            date.setMonth(date.getMonth()+number-12);
            date.setFullYear(date.getFullYear()+1)
        }
        else{
            date.setMonth(date.getMonth()+number);
            }
            var year = date.getFullYear(); //得到年份
            var month = date.getMonth();//得到月份
            if(month==0) {month=12;}
            var d= date.getDate();//得到日期
            if (month < 10) month = "0" + month;
            if (d< 10) d= "0" + d;
            var time = "";
            time = year + "-" + month + "-" + d;
        return   time;  
        break;  
      }
    }  
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值