time.js 1.07 KB
import dayjs from 'dayjs';

/**
 * 生成时间数组:
 * 1. 传入日期 = 当天 → 从【当前整点】到 23:00
 * 2. 传入日期 ≠ 当天 → 从【06:00】到 23:00
 * @param {string} targetDate 目标日期,格式 YYYY-MM-DD
 * @returns {string[]} 时间数组 HH:00
 */
export function getHourlyTimeArray(targetDate) {
  try {
    const INTERVAL = 1;
    const END_HOUR = 23;
    const DEFAULT_START = 6; // 非当天从6点开始

    const today = dayjs().format('YYYY-MM-DD');
    const isToday = targetDate === today;

    let startHour;
    if (isToday) {
      startHour = dayjs().hour();
      if (startHour > END_HOUR) startHour = END_HOUR;
      if (startHour < 0) startHour = 0;
    } else {
      startHour = DEFAULT_START;
    }

    const timeList = [];
    let current = startHour;

    while (current <= END_HOUR) {
      const hourStr = String(current).padStart(2, '0');
      timeList.push(`${hourStr}:00`);
      current += INTERVAL;
    }

    return timeList;
  } catch (err) {
    console.error('生成时间列表失败:', err);
    return [];
  }
}