js时间格式化精确到毫秒

/**
 * 数字前置补零
 * @param value 值
 * @param length 位数
 * @returns {string}
 */
export function digit(value, length = 2) {
  if (
    typeof value === "undefined" ||
    value === null ||
    String(value).length >= length
  ) {
    return value;
  }
  return (Array(length).join("0") + value).slice(-length);
}

//格式化日期到毫秒
export function toDateString(time, format = "yyyy-MM-dd HH:mm:ss") {
  if (!time) {
    return "";
  }
  if (typeof time === "number" && String(time).length === 10) {
    time = time * 1000; // 10位时间戳处理
  }
  const date = new Date(time);
  const ymd = [
    digit(date.getFullYear(), 4),
    digit(date.getMonth() + 1),
    digit(date.getDate()),
  ];
  const hms = [
    digit(date.getHours()),
    digit(date.getMinutes()),
    digit(date.getSeconds()),
    digit(date.getMilliseconds()),
  ];
  return format
    .replace(/yyyy/g, ymd[0])
    .replace(/MM/g, ymd[1])
    .replace(/dd/g, ymd[2])
    .replace(/HH/g, hms[0])
    .replace(/mm/g, hms[1])
    .replace(/ss/g, hms[2])
    .replace(/SSS/g, hms[3]);
}

你可能感兴趣的:(javascript,前端)