uniapp根据开始时间和结束时间以及固定的时间间隔返回时间数组,不要包括年月日,开始时间也不包括年月日
时间: 2023-11-14 10:08:28 浏览: 73
可以使用 JavaScript 中的 Date 对象和数组来实现这个功能。具体步骤如下:
1. 将开始时间和结束时间转换为 Date 对象,并去除年月日信息。
```javascript
const start = new Date('2022/01/01 09:00:00');
const end = new Date('2022/01/01 18:00:00');
start.setFullYear(2000, 0, 1);
end.setFullYear(2000, 0, 1);
```
2. 计算两个时间之间的时间差并转换为毫秒数。
```javascript
const diff = end.getTime() - start.getTime();
```
3. 将时间差转换为对应时间间隔的个数。
```javascript
const interval = 30 * 60 * 1000; // 30 分钟
const count = Math.floor(diff / interval);
```
4. 根据时间间隔和个数生成时间数组。
```javascript
const times = [];
for (let i = 0; i < count; i++) {
const time = new Date(start.getTime() + i * interval);
times.push(time.toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'}));
}
```
完整代码如下:
```javascript
function getTimeArray(startStr, endStr, interval) {
const start = new Date(startStr);
const end = new Date(endStr);
start.setFullYear(2000, 0, 1);
end.setFullYear(2000, 0, 1);
const diff = end.getTime() - start.getTime();
const count = Math.floor(diff / interval);
const times = [];
for (let i = 0; i < count; i++) {
const time = new Date(start.getTime() + i * interval);
times.push(time.toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'}));
}
return times;
}
// 使用示例
const startStr = '2022/01/01 09:00:00';
const endStr = '2022/01/01 18:00:00';
const interval = 30 * 60 * 1000; // 30 分钟
const times = getTimeArray(startStr, endStr, interval);
console.log(times);
```
输出结果为:
```
[
"09:00",
"09:30",
"10:00",
"10:30",
"11:00",
"11:30",
"12:00",
"12:30",
"13:00",
"13:30",
"14:00",
"14:30",
"15:00",
"15:30",
"16:00",
"16:30",
"17:00",
"17:30"
]
```
阅读全文