当前位置: 移动技术网 > IT编程>开发语言>JavaScript > JavaScript自定义DateDiff函数(兼容所有浏览器)

JavaScript自定义DateDiff函数(兼容所有浏览器)

2019年07月19日  | 移动技术网IT编程  | 我要评论
复制代码 代码如下:

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网