/* * 功能:實現VBScript的DateAdd功能. * 參數:interval,字符串表達式,表示要添加的時間間隔. * 參數:number,數值表達式,表示要添加的時間間隔的個數. * 參數:date,時間對象. * 返回:新的時間對象. * var now = new Date(); * var newDate = DateAdd( "d", 5, now); *--------------- DateAdd(interval,number,date) ----------------- */ function DateAdd(interval, number, date) { switch (interval) { case "y ": { date.setFullYear(date.getFullYear() + number); return date; break; } case "q ": { date.setMonth(date.getMonth() + number * 3); return date; break; } case "m ": { date.setMonth(date.getMonth() + number); return date; break; } case "w ": { date.setDate(date.getDate() + number * 7); return date; break; } case "d ": { date.setDate(date.getDate() + number); return date; break; } case "h ": { date.setHours(date.getHours() + number); return date; break; } case "m ": { date.setMinutes(date.getMinutes() + number); return date; break; } case "s ": { date.setSeconds(date.getSeconds() + number); return date; break; } default: { date.setDate(d.getDate() + number); return date; break; } } } var now = new Date(); // 加五天. var newDate = DateAdd("d ", 5, now); alert(newDate.toLocaleDateString()) // 加兩個月. newDate = DateAdd("m ", 2, now); alert(newDate.toLocaleDateString()) // 加一年 newDate = DateAdd("y ", 1, now); alert(newDate.toLocaleDateString())
js日期、月份:日期加一天等
// 日期,在原有日期基礎上,增加days天數,默認增加1天 function addDate(date, days) { if (days == undefined || days == '') { days = 1; } var date = new Date(date); date.setDate(date.getDate() + days); var month = date.getMonth() + 1; var day = date.getDate(); return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day); } // 日期月份/天的顯示,如果是1位數,則在前面加上'0' function getFormatDate(arg) { if (arg == undefined || arg == '') { return ''; } var re = arg + ''; if (re.length < 2) { re = '0' + re; } return re; }
參考:
如題,開始查了查js的使用文檔,但沒發現可以直接用的函數,於是就想自己寫函數來着,這就要涉及到每個月天數的判斷,如果是2月份的話,還要涉及到閏年的判斷,雖然不復雜但我想js應該不會這么低級,於是查了下資料,終於有了如下重大發現,以在某個日期上加減天數來說,其實只要調用Date對象的setDate()函數就可以了,具體方法如下:
function addDate(date,days){
var d=new Date(date);
d.setDate(d.getDate()+days);
var m=d.getMonth()+1;
return d.getFullYear()+'-'+m+'-'+d.getDate();
}
其中,date參數是要進行加減的日期,days參數是要加減的天數,如果往前算就傳入負數,往后算就傳入正數,如果是要進行月份的加減,就調用setMonth()和getMonth()就可以了,需要注意的是返回的月份是從0開始計算的,也就是說返回的月份要比實際月份少一個月,因此要相應的加上1。