日期:2014-05-16 浏览次数:20344 次
SQLServer 中有两个非常好用的日期操作函数:DATEADD(即dateadd)用来给日期添加指定时间间隔,DATEDIFF(即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); } }?