Javascript 实现差异(以 2 个日期之间的天数为单位)

Javascript implementation difference in days between 2 dates

本文关键字:之间 为单位 日期 实现 Javascript      更新时间:2023-09-26

我尝试获取警报,但由于某种原因,我无法获得最后一个警报来给我与此代码的差异 谁能解释为什么我没有得到结果?

<!DOCTYPE HTML>
<html>
<body>
<input type="date" id="a"> 
<input type="date" id="b">
<input type="submit" id="c" onclick="getValue()">
<script>
    function getValue(){
        var startDate = document.getElementById("a").value;
        var endDate = document.getElementById("b").value;
        var parts1 = startDate.split('-'); 
        var parts2 = endDate.split('-');
        var date1 = new Date(parts1);
        var date2 = new Date(parts2);
        var difference = Math.Abs(parts1 - parts2);
        difference = parseInt(difference / 86400000);
        alert(difference);
    }
</script>

</body>
</html>

此代码存在一些问题:

  • Date不期望数组,而parts1parts2就是这样。只需使用 startDateendDate ,它们是Date期望的格式的日期字符串。看起来 Date 构造函数实际上确实接受一个数组并将其参数视为单独传递的参数,但这不是必需的:

    > new Date(['2013', '10', '29']);
    Tue Oct 29 2013 00:00:00 GMT-0500 (CDT)
    
  • Math.Abs不存在; Math.abs就是您正在寻找的。

  • 使用日期对象上的getTime()对它们进行数学运算:Math.abs(date1.getTime() - date2.getTime());

这是一个在上下文中显示这些修复程序的小提琴。

你犯了一个简单的错误。只需将减法线更改为下面的减法线即可。

var difference = Math.abs(date1 - date2);

由于您正在获得标准格式的直接日期对象,因此您应该直接减去这些对象。它只会给你两个日期之间的区别。

演示