在做项目的时候遇见一个需求,要求知道会员卡种类,会员卡开始时间和会员卡使用有效周期自动得到会员卡到期时间。所以就出现了几个难点。一、有效周期写法不一定;二、如何获取使用周期内的数字;三、如何自动得到会员卡到期时间。以下就来解决一下这些问题:
一、规定周期输入格式:
var vperiod=$("#vperiod").val();
var pattern1=/^\d{1,2}个月/;
if(!(pattern1.test(vperiod)||vperiod==null)){
alert("会员卡使用周期输入格式为:xx个月");
return false;
}
二、如何获取使用周期内的数字
var ubksj=$('#ubksj').val();
var vperiod=$("#vperiod").val();
var array = ubksj.split("-");
var dt = new Date(array[0], array[1], array[2]);
var times="";
//获取字符串中的数字
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;
}
}
};