如何计算 11:59:00 PM 和 12:00:00 AM 的平均时间,使其可以为 11:59:30 PM。目前这段代码给我 11:59:30 AM
var convertTimeToMilliSecondsTest = function(time) {
var startDate = "1970/01/01";
if(time.indexOf("AM") != -1) {
newTime = time.replace("AM", " AM");
} else if(time.indexOf("PM") != -1) {
newTime = time.replace("PM", " PM");
}
var dateString = startDate + " " + newTime;
var date = new Date(dateString.replace(/-/g, '/'));
return date.getTime();
}
var calculateAverageTimeToBed = function(dataset) {
var totalTimeInMilliSeconds = 0;
for(var i = 0;i < dataset.length; ++i) {
totalTimeInMilliSeconds += convertTimeToMilliSecondsTest(dataset[i].startTime);
}
var averageTimeInBed = totalTimeInMilliSeconds / dataset.length;
return averageTimeInBed;
}
最佳答案
在您的计算中使用整个日期(包括天数)。这是一种方法:
var date1 = '2013-09-17 11:59:00 PM';
var date2 = '2013-09-18 12:00:00 AM';
var d1msecs = new Date(date1).getTime(); // get milliseconds
var d2msecs = new Date(date2).getTime(); // get milliseconds
var avgTime = (d1msecs + d2msecs) / 2;
console.log(avgTime);
var result = new Date(avgTime);
alert(result);
关于javascript - 如何计算平均时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18880766/