JavaScript版DateAdd和DateDiff函数代码_Javascript教程-查字典教程网
JavaScript版DateAdd和DateDiff函数代码
JavaScript版DateAdd和DateDiff函数代码
发布时间:2016-12-30 来源:查字典编辑
摘要:DateAdd函数:复制代码代码如下:functionDateAdd(interval,number,date){switch(interv...

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);

}

}

兼容多浏览器的datediff函数

复制代码 代码如下:

<script type="text/javascript">

function NewDate(str) {

str = str.split('-');

var date = new Date();

date.setUTCFullYear(str[0], str[1] - 1, str[2]);

date.setUTCHours(0, 0, 0, 0);

return date;

}

function TimeCom(dateValue) {

var newCom;

if (dateValue == "") {

newCom = new Date();

} else {

newCom = NewDate(dateValue);

}

this.year = newCom.getYear();

this.month = newCom.getMonth() + 1;

this.day = newCom.getDate();

this.hour = newCom.getHours();

this.minute = newCom.getMinutes();

this.second = newCom.getSeconds();

this.msecond = newCom.getMilliseconds();

this.week = newCom.getDay();

}

function DateDiff(interval, date1, date2) {

var TimeCom1 = new TimeCom(date1);

var TimeCom2 = new TimeCom(date2);

var result;

switch (String(interval).toLowerCase()) {

case "y":

case "year":

result = TimeCom1.year - TimeCom2.year;

break;

case "m":

case "month":

result = (TimeCom1.year - TimeCom2.year) * 12 + (TimeCom1.month - TimeCom2.month);

break;

case "d":

case "day":

result = Math.round((Date.UTC(TimeCom1.year, TimeCom1.month - 1, TimeCom1.day) - Date.UTC(TimeCom2.year, TimeCom2.month - 1, TimeCom2.day)) / (1000 * 60 * 60 * 24));

break;

case "h":

case "hour":

result = Math.round((Date.UTC(TimeCom1.year, TimeCom1.month - 1, TimeCom1.day, TimeCom1.hour) - Date.UTC(TimeCom2.year, TimeCom2.month - 1, TimeCom2.day, TimeCom2.hour)) / (1000 * 60 * 60));

break;

case "min":

case "minute":

result = Math.round((Date.UTC(TimeCom1.year, TimeCom1.month - 1, TimeCom1.day, TimeCom1.hour, TimeCom1.minute) - Date.UTC(TimeCom2.year, TimeCom2.month - 1, TimeCom2.day, TimeCom2.hour, TimeCom2.minute)) / (1000 * 60));

break;

case "s":

case "second":

result = Math.round((Date.UTC(TimeCom1.year, TimeCom1.month - 1, TimeCom1.day, TimeCom1.hour, TimeCom1.minute, TimeCom1.second) - Date.UTC(TimeCom2.year, TimeCom2.month - 1, TimeCom2.day, TimeCom2.hour, TimeCom2.minute, TimeCom2.second)) / 1000);

break;

case "ms":

case "msecond":

result = Date.UTC(TimeCom1.year, TimeCom1.month - 1, TimeCom1.day, TimeCom1.hour, TimeCom1.minute, TimeCom1.second, TimeCom1.msecond) - Date.UTC(TimeCom2.year, TimeCom2.month - 1, TimeCom2.day, TimeCom2.hour, TimeCom2.minute, TimeCom2.second, TimeCom1.msecond);

break;

case "w":

case "week":

result = Math.round((Date.UTC(TimeCom1.year, TimeCom1.month - 1, TimeCom1.day) - Date.UTC(TimeCom2.year, TimeCom2.month - 1, TimeCom2.day)) / (1000 * 60 * 60 * 24)) % 7;

break;

default:

result = "invalid";

}

return (result);

}

</script>

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类