| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- // 返回不重复的随机生成的8位数字
- export function getRandomNumber() {
- const min = 10000000;
- const max = 99999999; // 生成一个8位数的随机数
- return Math.floor(Math.random() * (max - min + 1)) + min;
- }
- // 返回指定时间的前后半小时的毫秒级时间戳
- export function getTimestampsBeforeAndAfter(dateString, format = 'yyyy-MM-dd HH:mm:ss') {
- // 创建一个Date对象
- const date = new Date(dateString);
- // 半小时的毫秒数
- const halfHourMilliseconds = 30 * 60 * 1000;
- // 获取指定时间前半小时的Date对象
- const beforeHalfHour = new Date(date.getTime() - halfHourMilliseconds);
- // 获取指定时间后半小时的Date对象
- const afterHalfHour = new Date(date.getTime() + halfHourMilliseconds);
- // 将Date对象转换为毫秒级时间戳
- const beforeHalfHourTimestamp = beforeHalfHour.getTime();
- const afterHalfHourTimestamp = afterHalfHour.getTime();
- // // 将Date对象转换为秒级时间戳
- // const beforeHalfHourTimestamp = Math.round(beforeHalfHour.getTime() / 1000);
- // const afterHalfHourTimestamp = Math.round(afterHalfHour.getTime() / 1000);
- // 返回时间戳数组
- return [beforeHalfHourTimestamp, afterHalfHourTimestamp];
- }
- // 指定时间范围内按指定间隔的时间数组
- export function getTimeArrayByInterval(startTimeString, endTimeString, intervalInMinutes = 1, format = 'HH:mm') {
- // 创建开始和结束时间的Date对象
- const startTime = new Date(startTimeString);
- const endTime = new Date(endTimeString);
-
- // 用于存储格式化时间的数组
- const timeArray = [];
-
- // 设置循环的当前时间
- let currentTime = new Date(startTime.getTime());
-
- // 确保结束时间大于开始时间
- if (endTime <= startTime) {
- throw new Error('结束时间必须大于开始时间');
- }
-
- // 确保间隔是正整数
- if (Number.isInteger(intervalInMinutes) && intervalInMinutes > 0) {
- // 遍历开始时间和结束时间之间的每个指定间隔
- while (currentTime <= endTime) {
- // 格式化当前时间
- const formattedTime = formatTime(currentTime, format);
- timeArray.push(formattedTime);
-
- // 增加指定的间隔分钟数
- currentTime.setMinutes(currentTime.getMinutes() + intervalInMinutes);
-
- // 如果增加间隔后超过了结束时间,则退出循环
- if (currentTime > endTime) {
- break;
- }
- }
- } else {
- throw new Error('间隔时间必须是正整数');
- }
-
- // 返回格式化时间数组
- return timeArray;
- }
-
- // 辅助函数,用于格式化Date对象为指定格式的时间字符串
- function formatTime(date, format = 'HH:mm') {
- const pad = (n) => (n < 10 ? '0' + n : n);
- const hours = pad(date.getHours());
- const minutes = pad(date.getMinutes());
- return format
- .replace('HH', hours)
- .replace('mm', minutes);
- }
-
|