时差计算错误
Time differences wrong calculation
function parseDate(s){
var parts = s.split('/')
return new Date(parts[2], parts[1], parts[0])
}
function calcDaysBetween(startDate, endDate){
return Math.floor((endDate-startDate)/86400000);
}
function yarro(){
var startDate = parseDate($('#pickupdate').val());
var endDate = parseDate($('#dropoffdate').val());
var days = calcDaysBetween(startDate, endDate);
$('#newp').html('Days Count: <b>'+days);
}
31/3/2012 , 1/4/2012
天数计数: 0//错误
或
31/1/2012 , 1/2/2012
天数计数: -1//错误
1/1/2012 , 2/1/2012
天数: 1//ok
为什么?
知道 JS 月份是从 0 开始的,对此非常重要。 您的代码将日期 31/1/2012 解析为 2012 年 2 月 31 日,这在技术上是无效的日期,但被解释为 2012 年 3 月 2 日(第二个,因为 2012 年是闰年(。 您需要做的是从parts[1]
值中减去1
,然后再将其传递给Date
构造函数。
2 日(和 2012 年 3 月 1 日。 当您减去这些日期时,您会得到 -1 天的差异。
您在 2012 年 3 月 31 日和 2012 年 1 月 4 日之间得到 0 天,因为这些日期被解释为 2012 年 4 月 31 日(2012 年 5 月1 日(和 2012 年 5 月 1 日,这两个日期是同一日期,导致 0 天差异。
您在 2012 年 1 月 1 日和 2012 年 2 月 1 日之间得到 1 天,因为这些日期被解释为 2012 年 2 月 1日和 2012 年 2 月 2 日,从而导致 1 天的差异。
相关文章:
- 与域在同一台计算机上运行的NODEJS服务器的CORS错误
- 猫头鹰旋转木马宽度计算错误
- 百分比计算错误
- 浏览器错误的javascript浮点计算
- jQuery - 带有一些数字的表格计算出现奇怪的舍入错误
- JavaScript 运行时错误仅在本地计算机上
- 我的代码中有什么错误?计算最多 n 的素数
- 计算当天和另一个日期之间的差额时出现错误差异
- 在带有时间戳的日期之间计算时出现 NaN JavaScript 错误
- Javascript/Html 未捕获的引用错误:赋值中的左侧无效;未捕获的引用错误:未定义计算
- Javascript:错误的日期计算
- 为什么使用CryptoJS的哈希计算会在Angular中导致$rootScope:infdig错误
- 谷歌浏览器错误地计算了元素的高度
- JavaScript 在两个输入中计算错误的百分比
- 未捕获的引用错误: 未定义计算总计
- JS脚本计算金额的总和计算错误
- 如何在 JavaScript 对象中计算父级(获取未定义错误)
- 在不同计算机上执行时未捕获的引用错误
- 计算两个日期之间的差异会导致错误的计算
- 错误 404,在我的计算机上找不到脚本