// 返回不重复的随机生成的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); }