准备工作

在开始之前,请确保你对JavaScript的基本语法有所了解,特别是Date对象的使用。我们的目标是创建一个函数,接收一个日期对象和一个格式字符串作为参数,然后返回按照指定格式格式化的日期字符串。

实现日期格式化函数

下面是一个简单的日期格式化函数实现,它支持年、月、日、时、分、秒的基本格式化:

        
JavaScript
1234567891011121314
function formatDate(date, format) { const map = { 'yyyy': date.getFullYear(), 'MM': ('0' + (date.getMonth() + 1)).slice(-2), 'dd': ('0' + date.getDate()).slice(-2), 'HH': ('0' + date.getHours()).slice(-2), 'mm': ('0' + date.getMinutes()).slice(-2), 'ss': ('0' + date.getSeconds()).slice(-2) }; return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function(match) { return map[match]; }); }

函数解析

  • 参数说明:

    • date: 需要格式化的日期对象。
    • format: 指定的输出格式字符串,其中yyyy代表四位年份,MM代表两位月份,dd代表两位日期,HH代表24小时制的小时,mm代表分钟,ss代表秒。
  • 核心逻辑:

    • 首先定义了一个映射表map,将日期的各部分根据格式字符串中的关键词映射到对应的值上,并补零以保持两位数格式。
    • 然后,使用正则表达式和replace方法,将format字符串中的关键词替换为实际的日期值。

示例用法

现在,让我们通过几个例子来看看这个函数的使用方法:

        
JavaScript
12345
const now = new Date(); console.log(formatDate(now, 'yyyy-MM-dd HH:mm:ss')); // 输出当前日期时间,如2023-04-05 15:20:30 console.log(formatDate(now, 'MM/dd/yyyy')); // 美式日期格式,如04/05/2023 console.log(formatDate(now, 'dd.MM.yyyy')); // 欧洲日期格式,如05.04.2023