TypeScript封装格式化时间的函数

2,817 阅读1分钟

TypeScript封装格式化时间的函数,代码如下:

因为我发现网上大多数格式化时间都是用RexExp.1,但是1,但是1-$9已经启用了,所以今天给大家分享一篇使用TS封装格式化时间的函数,代码如下:

该函数接受两个参数:一个 Date 类型的日期和一个格式化字符串,返回一个字符串类型的格式化后的时间。

export const formatDate = (date: Date, format = 'yyyy-MM-dd HH:mm:ss'): string => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()
  const formatMap: { [key: string]: any } = {
    yyyy: year.toString(),
    MM: month.toString().padStart(2, '0'),
    dd: day.toString().padStart(2, '0'),
    HH: hour.toString().padStart(2, '0'),
    mm: minute.toString().padStart(2, '0'),
    ss: second.toString().padStart(2, '0')
  }
  return format.replace(/yyyy|MM|dd|HH|mm|ss/g, (match) => formatMap[match])
}

使用示例:

const date = new Date();
const format = 'yyyy-MM-dd HH:mm:ss';
const formattedDate = formatDate(date, format);
console.log(formattedDate); // 2022-09-08 14:30:00

在上面的示例中,我们创建了一个 Date 类型的日期对象,然后将其传递给 formatDate 函数进行格式化。函数的第二个参数是格式化字符串,其中 'yyyy' 表示年份,'MM' 表示月份,'dd' 表示日期,'HH' 表示小时,'mm' 表示分钟,'ss' 表示秒钟。函数中使用正则表达式将这些格式占位符替换为对应的日期时间值。