這個問題很常見,但是一番搜索下來發現都是不全面,原因是日期操作的函數裏有好幾個坑。
網上的資料分兩撥:
有的講了如何獲得字符串 如“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);
}