今天做项目遇到了,获取相对于当前日期前30天的时间,结合网上资料,做了一份整理。
一.获取指定日期前或者后指定间隔时间代码
function getNowFormatDate(sdate,interval,caret) {
var patt1 = /^\d{4}-([0-1]?[0-9])-([0-3]?[0-9])$/; //判断输入的日期是否符合格式正则表达式
if(!(sdate && typeof(sdate) == "string" && patt1.test(sdate))){
sdate = new Date(); //不满足日期的则使用当前年月日
}
interval = isNaN(parseInt(interval)) ? 0 : parseInt(interval);//若没有输入间隔,则使用当前日
caret = (caret && typeof(caret) == "string") ? caret : "";
var gdate = new Date(sdate).getTime();//获取指定年月日
gdate = gdate + 1000*60*60*24*interval; //加减相差毫秒数
var speDate = new Date(gdate);//获取指定好毫秒数时间
var preYear = speDate.getFullYear();
var preMonth = speDate.getMonth() + 1;
var preDay = speDate.getDate();
preMonth = (preMonth < 10) ? ("0" + preMonth) :preMonth;
preDay = (preDay < 10) ? ("0" + preDay) :preDay;
var preDate = preYear + caret + preMonth + caret + preDay;
return preDate;
}
调用例子: 获取当天日期 getNowFormatDate("",0,"-"); 结果为"2018-09-18";
获取前一天日期