我试图获得警报但由于某种原因,我无法得到最后一个警报给我这个代码的差异可以任何人解释为什么我没有得到结果? :
<!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>
答案 0 :(得分:3)
此代码存在一些问题:
Date
不期望数组,parts1
和parts2
。只需使用startDate
和endDate
,它们是Date
期望格式的日期字符串。看起来Date
构造函数确实采用了一个数组并将其参数视为单独传递,但它没有必要:
> new Date(['2013', '10', '29']);
Tue Oct 29 2013 00:00:00 GMT-0500 (CDT)
Math.Abs
不存在; Math.abs
是您正在寻找的。 p>
在日期对象上使用getTime()
对其进行数学运算:Math.abs(date1.getTime() - date2.getTime());
答案 1 :(得分:0)
你犯了一个简单的错误。用下面的方法改变减法线。
var difference = Math.abs(date1 - date2);
当您以标准格式获取直接日期对象时,应该直接减去这些对象。它只会给你两个日期之间的区别。