我想使用 Jquery/Javascript 获取多个日期时间值之间的平均天数。
以下是我的样本数据:
8/8/2017 1:58 AM
8/3/2017 1:58 AM
8/4/2017 2:18 AM
8/5/2017 1:58 AM
8/7/2017 1:58 AM
7/25/2017 1:58 AM
7/24/2017 1:58 AM
7/18/2017 1:58 AM
7/25/2017 1:58 AM
8/1/2017 1:58 AM
这是我的尝试逻辑:
var sum = ['7/21/2017 1:58 AM','8/3/2017 1:58 AM','8/5/2017 1:58 AM','8/8/2017 1:58 AM'];
var avgval = "";
var total = 0
for(var index=0; index<sum.length; index++){
if (index < (sum.length-1)){
console.log(sum[index+1], sum[index])
var days = Math.abs((new Date(sum[index+1])-new Date(sum[index]))/(1000*60*60*24));
total+=days;
}
else{
avgval = total / sum.length-1;
}
}
console.log(avgval);
最佳答案
您也可以使用 moment.js
来计算天数差异(天数向下舍入为整数)。
var sum = 0;
var prevdate = false;
for(var k in dates) {
var thedate = moment(dates[k], "M/D/YYYY H:mm A");
if(prevdate) {
sum += prevdate.diff(thedate, 'days');
}
prevdate = thedate;
}
var avg = (sum / (dates.length - 1));
https://jsfiddle.net/ishukshin/s6q0rhzL/
至于您的更新
除法时应使用括号:avgval = Total/(sum.length-1)
您必须定义天数差异。也许您需要添加 Math.abs
来计算日期之间的差异。
关于javascript - 使用 Javascript 的多个日期时间之间的平均天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45608598/