本文介绍了一个简单的JavaScript自定义函数,用于计算两个日期字符串之间的时间差。支持年-月-日格式,可返回秒、分、小时或天的差值。通过正则替换统一格式后,利用Date对象获取时间戳进行数学运算,实现不同精度单位的快速计算。
JavaScript时间差计算函数实现
这段代码由个人编写,主要满足基本使用需求,并非最优方案,后续仍有优化空间。此处仅作记录,直接展示代码部分。
具体实现代码如下:
/*
* 获取时间差,输入的时间格式需为“年-月-日 小时:分钟:秒”或“年/月/日 小时:分钟:秒”
* 年月日部分需为完整格式,例如:2010-10-12 01:00:00
* 返回结果的精度单位包括:秒、分、小时、天
*/
function GetDateDiff(startTime, endTime, diffType)
{
//将格式为 xxxx-xx-xx 的时间字符串转换为 xxxx/xx/xx 格式
startTime = startTime.replace(/\-/g, "/");
endTime = endTime.replace(/\-/g, "/");
//将表示计算间隔类型的参数转换为小写
diffType = diffType.toLowerCase();
var sTime = new Date(startTime); //开始时间
var eTime = new Date(endTime); //结束时间
//作为除数的数字
var divNum = 1;
switch (diffType)
{
case "second":
divNum = 1000;
break;
case "minute":
divNum = 1000 * 60;
break;
case "hour":
divNum = 1000 * 3600;
break;
case "day":
divNum = 1000 * 3600 * 24;
break;
default:
break;
}
return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(divNum));
}调用该函数的方式十分简便:
GetDateDiff("2010-10-11 00:00:00", "2010-10-11 00:01:40", "day")
上述调用用于计算天数差。
GetDateDiff("2010-10-11 00:00:00", "2010-10-11 00:01:40", "seond") 用于计算秒数差(注意参数拼写为seond)