Javascript 实现差异(以 2 个日期之间的天数为单位)
Javascript implementation difference in days between 2 dates
我尝试获取警报,但由于某种原因,我无法获得最后一个警报来给我与此代码的差异 谁能解释为什么我没有得到结果?
:<!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
不期望数组,而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
就是您正在寻找的。 -
使用日期对象上的
getTime()
对它们进行数学运算:Math.abs(date1.getTime() - date2.getTime());
这是一个在上下文中显示这些修复程序的小提琴。
你犯了一个简单的错误。只需将减法线更改为下面的减法线即可。
var difference = Math.abs(date1 - date2);
由于您正在获得标准格式的直接日期对象,因此您应该直接减去这些对象。它只会给你两个日期之间的区别。
演示
相关文章:
- 如果宽度是百分比,如何设置以px为单位的图像高度
- 如何将datetime转换为以毫秒为单位的epoch时间javascript
- 每小时倒计时一次,但以30分钟为单位
- 以天为单位计算年龄-Javascript
- 是否可以使用javascript获取以em为单位的窗口宽度
- 获取以屏幕像素为单位的旋转SVG元素的边界
- GridStack项的高度和宽度(以像素为单位)
- 有没有一种方法可以检查javascript以毫秒为单位执行一个函数需要多长时间
- JQPlot's仪表-以针为单位显示值
- Moment.js unix时间戳,以分钟为单位显示以前的时间
- 从Javascript到C#获取正确的日期(以毫秒为单位)
- 以 yyyy-mm-dd 格式的两天之间的差异(以天为单位)
- DOM 中两个元素之间的距离(以 px 为单位)
- Javascript 实现差异(以 2 个日期之间的天数为单位)
- 以天为单位的 2 个 ember 日期时间对象之间的差异
- 如何使用javascript记录两次按钮按下之间的响应时间(以秒为单位)
- 使用jQuery和javascript计算两次之间的差异,并以分钟为单位返回
- 以分钟为单位计算两个时间之间的差异
- 查找以年为单位的两个日期之间的差异
- 在OpenLayers中获取2个LonLat对象之间的距离(以像素为单位)