Skip to content

实现日期格式化 format 函数

Posted on:2024年9月9日 at 14:17
// js 实现日期的  format 函数
//
// YYYY 对应年
// MM 对应月
// DD 对应日
//
// HH 对应 24 小时制度
// hh 对应 12 小时制度
// mm 对应分钟
// ss 对应秒

const date = new Date();
const formattedDate = date.format("YYYY-MM-DD HH:mm:ss");
console.log(formattedDate); // 输出结果为当前日期和时间的格式化字符串

以下是使用JavaScript实现日期格式化的format函数:

// 挂载到Date对象原型上
Date.prototype.format = function (format) {
  const date = this;

  const year = date.getFullYear();
  const month = date.getMonth() + 1;
  const day = date.getDate();
  const hours = date.getHours();
  const minutes = date.getMinutes();
  const seconds = date.getSeconds();

  format = format.replace("YYYY", year);
  format = format.replace("MM", month.toString().padStart(2, "0"));
  format = format.replace("DD", day.toString().padStart(2, "0"));
  format = format.replace("HH", hours.toString().padStart(2, "0"));
  format = format.replace("hh", (hours % 12).toString().padStart(2, "0"));
  format = format.replace("mm", minutes.toString().padStart(2, "0"));
  format = format.replace("ss", seconds.toString().padStart(2, "0"));

  return format;
};

// 示例用法
const date = new Date();
const formattedDate = date.format("YYYY-MM-DD HH:mm:ss");
console.log(formattedDate); // 输出结果为当前日期和时间的格式化字符串

上述代码中,我们通过在Date对象的原型上定义format函数,使得所有的Date对象都可以调用format函数进行日期格式化。在函数内部,我们使用getFullYeargetMonthgetDate等方法获取日期的年、月、日、时、分、秒的值,并将其替换到传入的format字符串中对应的占位符。最后返回格式化后的字符串。

原文转自:https://fe.ecool.fun/topic/9e75bdd5-d3aa-4840-8842-9d4dcf7b1c24