我有一个这种类型的对象数组
Obj = { timeEnd:"06:45 AM",
timeStart:"04:23 AM"
}
数组是特定日期的[obj1,obj2, ....]类型。
这个数组定义了在事件上花费了多少时间。
我想重新创建或将此数组转换为时间明智的数组,例如
obj = { '4-5 AM' : 37,
'5-6 AM' : 60,
'6-7 AM' : 45
}
我试过搜索也无济于事。我是菜鸟。
如果您需要任何其他信息,请告诉我。最终目标是创建一个按小时计算的 chart.js 图表
最佳答案
您可以拆分 24 小时值并计数,直到达到目标小时,然后将剩余的分钟数相加。
function getHourParts(object) {
function getKey(h) {
return h + '-' + (h + 1);
}
function getTime(s) {
var t = s.split(':').map(Number);
return { h: t[0], m: t[1] };
}
var result = {},
start = getTime(object.timeStart),
end = getTime(object.timeEnd);
while (start.h < end.h) {
result[getKey(start.h)] = 60 - start.m;
++start.h;
start.m = 0;
}
result[getKey(end.h)] = end.m - start.m;
return result;
}
console.log(getHourParts({ timeStart: '04:23', timeEnd: '06:45' }));
console.log(getHourParts({ timeStart: '12:03', timeEnd: '12:05' }));
关于javascript - 如何按小时对数据进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38052957/