js计算时间段转换为一日时间百分比源码
时间: 2023-08-03 11:03:44 浏览: 160
以下是一个将js计算时间段转换为一日时间百分比的示例代码:
```javascript
// 定义起始时间和结束时间
var startTime = new Date('2022-01-01 10:00:00');
var endTime = new Date('2022-01-02 10:00:00');
// 定义时间段的数量
var numIntervals = 24;
// 计算每个时间点所在的时间段
var intervalLength = 24 / numIntervals; // 计算每个时间段的长度
var startInterval = Math.floor(startTime.getHours() / intervalLength); // 计算起始时间所处的时间段
var endInterval = Math.floor(endTime.getHours() / intervalLength); // 计算结束时间所处的时间段
// 计算每个时间段所占的时间
var intervalTimes = new Array(numIntervals).fill(0); // 初始化每个时间段的时间为0
if (startInterval == endInterval) { // 起始时间和结束时间处于同一个时间段
intervalTimes[startInterval] = (endTime.getTime() - startTime.getTime()) / 3600000; // 计算该时间段的持续时间
} else { // 起始时间和结束时间处于不同的时间段
intervalTimes[startInterval] = (new Date(startTime.getFullYear(), startTime.getMonth(), startTime.getDate(), startTime.getHours() + 1, 0, 0).getTime() - startTime.getTime()) / 3600000; // 计算起始时间所处时间段的持续时间
intervalTimes[endInterval] = (endTime.getTime() - new Date(endTime.getFullYear(), endTime.getMonth(), endTime.getDate(), endTime.getHours(), 0, 0).getTime()) / 3600000; // 计算结束时间所处时间段的持续时间
for (var i = startInterval + 1; i < endInterval; i++) { // 计算中间时间段的持续时间
intervalTimes[i] = 1;
}
}
// 计算每个时间段所占的百分比
var totalDuration = intervalTimes.reduce(function(acc, val) { return acc + val; }, 0); // 计算总持续时间
var intervalPercentages = intervalTimes.map(function(val) { return val / totalDuration; }); // 计算每个时间段所占的百分比
// 在控制台输出每个时间段的百分比
console.log(intervalPercentages);
```
这段代码的输出结果是一个长度为24的数组,每个元素表示一个小时所占的时间百分比。例如,如果第1个元素的值为0.22,表示第1个小时所占的时间百分比为22%。你可以将这个数组作为数据展示在echarts等工具的时间堆积图上。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)