这个问题很常见,但是一番搜索下来发现都是不全面,原因是日期操作的函数里有好几个坑。
网上的资料分两拨:
有的讲了如何获得字符串 如“2016-07-01”,而日期计算中只用了date.getDate()+daysCount
这样有很大的缺陷;
有的却用了毫秒去做日期计算却没避开date.getMonth()+1的陷阱;
所以就写下来备忘:
//获取常规日期显示字符串("2016-07-01"形式)参数是JavaScript日期对象
function GetDateNormalStr(date)
{
var y = date.getFullYear();
var m = (date.getMonth() + 1) < 10 ? "0" + (date.getMonth() + 1) : (date.getMonth() + 1);//获取月份的值,不足10补0
var d = date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); //获取日期具体日期值,不足10补0
return y + "-" + m + "-" + d;
}
//获取经过加减天数运算的常规日期字符串("2016-07-01"形式) 参数1:日期(JavaScript日期对象);参数2:要加减的天数(数字)
function GetDateAddedDaysNomalStr(date,daysCount)
{
date = date.getTime() + daysCount * 24 * 60 * 60 * 1000;
var d = new Date(date);
return GetDateNormalStr(d);
}