木子屋 Dnawo's BLOG

JavaScript版DateAdd和DateDiff函数

👤 dnawo 📅 2008-01-29 👁 5118 👍 0 💬 0 🔄 本站原创
VBScript中有两个非常好用的日期操作函数:DateAdd用来给日期添加指定时间间隔,DateDiff用来返回两个日期的时间间隔。可惜的是JavaScript没有,不过我们可以写一个函数来实现,一样的,呵呵。

DateAdd函数:
function DateAdd(interval,number,date){
	switch(interval.toLowerCase()){
		case "y": return new Date(date.setFullYear(date.getFullYear()+number));
		case "m": return new Date(date.setMonth(date.getMonth()+number));
		case "d": return new Date(date.setDate(date.getDate()+number));
		case "w": return new Date(date.setDate(date.getDate()+7*number));
		case "h": return new Date(date.setHours(date.getHours()+number));
		case "n": return new Date(date.setMinutes(date.getMinutes()+number));
		case "s": return new Date(date.setSeconds(date.getSeconds()+number));
		case "l": return new Date(date.setMilliseconds(date.getMilliseconds()+number));
	} 
}

DateDiff函数:
function DateDiff(interval,date1,date2){
	var long = date2.getTime() - date1.getTime(); //相差毫秒
	switch(interval.toLowerCase()){
		case "y": return parseInt(date2.getFullYear() - date1.getFullYear());
		case "m": return parseInt((date2.getFullYear() - date1.getFullYear())*12 + (date2.getMonth()-date1.getMonth()));
		case "d": return parseInt(long/1000/60/60/24);
		case "w": return parseInt(long/1000/60/60/24/7);
		case "h": return parseInt(long/1000/60/60);
		case "n": return parseInt(long/1000/60);
		case "s": return parseInt(long/1000);
		case "l": return parseInt(long);
	}
}

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 在JavaScript中将getRows返回的值转换为二维数组 下一篇 → JavaScript版IsDate函数