本文介绍了在JavaScript中计算两个日期之间天数差的两种常见方法。第一种通过转换日期为时间戳直接计算,适用于指定年月日的场景;第二种处理标准日期字符串格式,通过解析字符串并比较时间戳得出结果。文章提供了完整的函数代码及调用示例,帮助开发者快速实现日期差计算功能。
JavaScript计算日期差的方法
本文介绍了一种使用JavaScript计算日期差的具体实现方式,供读者参考学习。
基于时间戳的日期差计算
<script type="text/javascript">
function daytonow(year, month, date){
//思路就是转换两个日期为时间戳即毫秒数,再除以每一天的毫秒数得出相隔多少天
//JS中的month是从0开始,所以month要减一
month--;
//过去的日子
var tdate = new Date(year, month, date).getTime();
//今天
var tnow = new Date().getTime();
var longdate = Math.ceil((tnow - tdate) / (1000 * 60 * 60 * 24));
return longdate;
}
alert(daytonow(2009, 4, 5));
</script>
以下是计算两个日期之间天数差的具体代码示例:
基于日期字符串的日期差计算
//两日期串的天数之差, 前-后, sDate1-sDate2
function DateDiff(sDate1, sDate2) { //sDate1和sDate2是"2002-12-18"格式
var aDate, oDate1, oDate2, iDays;
aDate = sDate1.split("-");
oDate1 = new Date(aDate[0], aDate[1] - 1, aDate[2]);
aDate = sDate2.split("-");
oDate2 = new Date(aDate[0], aDate[1] - 1, aDate[2]);
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24);
if ((oDate1 - oDate2) < 0) {
return -iDays;
}
return iDays;
}
//两日期串的天数之差, 前-后, sDate1-sDate2
function DateDiff2(sDate1, sDate2) { //sDate1和sDate2是"12/18/2011"格式
var oDate1, oDate2, iDays;
oDate1 = new Date(sDate1);
oDate2 = new Date(sDate2);
var iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24);
if ((oDate1 - oDate2) < 0){
return -iDays;
}
return iDays;
}
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望上述内容能对您的JavaScript编程工作提供帮助。