function getBeforeDate(n){
var n = n;
var d = new Date();
var year = d.getFullYear();
var mon=d.getMonth()+1;
var day=d.getDate();
if(day <= n){
if(mon>1) {
mon=mon-1;
}
else {
year = year-1;
mon = 12;
}
}
d.setDate(d.getDate()-n);
year = d.getFullYear();
mon=d.getMonth()+1;
day=d.getDate();
s = year+"-"+(mon<10?('0'+mon):mon)+"-"+(day<10?('0'+day):day);
return s;
}
如果需要当前日期后几天的日期,则n天负数,例:getBeforeDate(-1) 即为明天的日期
根据指定日期得到前/后n天日期:其实就是将上面的方法做一个修改。再传入一个指定的日期,同时将
上面方法中的var d = new Date()修改,方法如下:
function getBeforeDate(n,givenDate){
var n = n;
var regEx = new RegExp("\\-","gi");
var givenDate =givenDate.replace(regEx,"/");
var d = new Date(givenDate);
var year = d.getFullYear();
var mon=d.getMonth()+1;
var day=d.getDate();
if(day <= n){
if(mon>1) {
mon=mon-1;
}
else {
year = year-1;
mon = 12;
}
}
d.setDate(d.getDate()-n);
year = d.getFullYear();
mon=d.getMonth()+1;
day=d.getDate();
s = year+"-"+(mon<10?('0'+mon):mon)+"-"+(day<10?('0'+day):day);
return s;
}