工具函数

51 阅读1分钟
/**
 * 将字符串日期转换为 Date 对象
 * @param {string | null | undefined} dateStr - 需要转换的日期字符串
 * @returns {Date | null} - 转换后的 Date 对象
 */
export const toDate = (dateStr) => {
  return dateStr ? new Date(dateStr) : null;
};

/**
* 将字符串数组转换为 Date 数组 (用于 RangePicker)
* @param {string[] | null | undefined} dateArr - 需要转换的日期字符串数组
* @returns {Date[] | []} - 转换后的 Date 数组
*/
export const toDateRange = (dateArr) => {
  return Array.isArray(dateArr) ? dateArr.map(date => toDate(date)) : [];
};
 const [start, end] = values.time.map(formatDate);

/**
 * 将ISO格式的日期字符串格式化为年-月-日 时:分:秒的格式
 *
 * @param isoString ISO格式的日期字符串,例如"2023-04-01T12:00:00.000Z"
 * @returns 格式化后的日期字符串,例如"2023-04-01 12:00:00"
 */
export const formatDate = (isoString) => {
  const date = new Date(isoString);
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, "0");
  const day = String(date.getDate()).padStart(2, "0");
  const hours = String(date.getHours()).padStart(2, "0");
  const minutes = String(date.getMinutes()).padStart(2, "0");
  const seconds = String(date.getSeconds()).padStart(2, "0");
  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
};
/**
 * 生成一个短ID。
 *
 * @returns {number} 返回生成的短ID。限制为 10 位以内的数字
 */
export const generateShortId = () => {
  const arr = new Uint32Array(1);
  crypto.getRandomValues(arr);
  return arr[0] % 1e10;
};