想要一个JS函数,共有4个参数分别为开始时间、截至时间、时间间隔和时间类型。时间类型为必传参数为小时,分种和秒。剩余三个参数开始时间、截至时间、时间间隔,输入其中两个获取剩余一个传入时间参数的返回值。
时间: 2023-06-16 11:06:49 浏览: 71
好的,这是一个可以实现你所需功能的 JS 函数:
```javascript
function getTimeValue(startTime, endTime, interval, timeType) {
// 将开始时间、截至时间转换为时间戳
startTime = new Date(startTime).getTime();
endTime = new Date(endTime).getTime();
// 如果开始时间晚于截至时间则返回空数组
if (startTime > endTime) {
return [];
}
// 将时间间隔转换为毫秒数
switch (timeType) {
case 'hour':
interval = interval * 60 * 60 * 1000;
break;
case 'minute':
interval = interval * 60 * 1000;
break;
case 'second':
interval = interval * 1000;
break;
default:
return [];
}
// 计算时间点并返回数组
var timeArray = [];
for (var i = startTime; i <= endTime; i += interval) {
timeArray.push(new Date(i));
}
return timeArray;
}
```
使用方法:
```javascript
// 获取从 2022-01-01 00:00:00 到 2022-01-02 00:00:00 每隔 2 小时的时间点
getTimeValue('2022-01-01 00:00:00', '2022-01-02 00:00:00', 2, 'hour');
// 获取从 2022-01-01 00:00:00 到 2022-01-02 00:00:00 每隔 30 分钟的时间点
getTimeValue('2022-01-01 00:00:00', '2022-01-02 00:00:00', 30, 'minute');
// 获取从 2022-01-01 00:00:00 到 2022-01-02 00:00:00 每隔 10 秒的时间点
getTimeValue('2022-01-01 00:00:00', '2022-01-02 00:00:00', 10, 'second');
```
注意事项:
- 开始时间和截止时间可以使用任何 JavaScript Date 支持的格式,如 `2022-01-01 00:00:00`、`2022/01/01 00:00:00`、`January 1, 2022 00:00:00` 等。
- 如果开始时间晚于截至时间,则返回空数组。
阅读全文