【js时间日期格式化封装函数】在JavaScript开发中,时间日期的格式化是一个非常常见的需求。不同的项目可能需要不同的日期格式,例如“YYYY-MM-DD”、“HH:mm:ss”或“DD/MM/YYYY”。为了提高代码的复用性和可维护性,通常会将日期格式化功能封装成一个函数。
以下是对常见JS日期格式化方法的总结,并附上一个通用的封装函数示例。
一、常用日期格式说明
格式符号 | 含义 | 示例 |
`yyyy` | 四位年份 | 2025 |
`yy` | 两位年份 | 25 |
`MM` | 两位月份(01-12) | 08 |
`M` | 一位或两位月份 | 8 |
`dd` | 两位日期 | 05 |
`d` | 一位或两位日期 | 5 |
`hh` | 12小时制小时 | 09 |
`HH` | 24小时制小时 | 21 |
`mm` | 分钟 | 30 |
`ss` | 秒 | 45 |
`S` | 毫秒(1位) | 7 |
`SS` | 毫秒(2位) | 68 |
`SSS` | 毫秒(3位) | 687 |
二、封装函数示例
```javascript
function formatDate(date, format) {
const pad = (num) => num.toString().padStart(2, '0');
const year = date.getFullYear();
const month = pad(date.getMonth() + 1); // 月份从0开始
const day = pad(date.getDate());
const hours = pad(date.getHours());
const minutes = pad(date.getMinutes());
const seconds = pad(date.getSeconds());
return format
.replace(/yyyy/g, year)
.replace(/yy/g, year.toString().slice(-2))
.replace(/MM/g, month)
.replace(/M/g, month.replace(/^0/, ''))
.replace(/dd/g, day)
.replace(/d/g, day.replace(/^0/, ''))
.replace(/HH/g, hours)
.replace(/hh/g, hours)
.replace(/mm/g, minutes)
.replace(/ss/g, seconds);
}
```
三、使用示例
```javascript
const now = new Date();
console.log(formatDate(now, "yyyy-MM-dd HH:mm:ss")); // 输出:2025-04-05 14:30:45
console.log(formatDate(now, "dd/MM/yyyy")); // 输出:05/04/2025
console.log(formatDate(now, "hh:mm:ss SSS")); // 输出:02:30:45 687
```
四、注意事项
- 如果传入的参数不是`Date`对象,函数可能会出错,建议添加类型判断。
- 可以根据项目需求扩展更多格式支持,如星期几、时区等。
- 使用原生`Date`对象时,注意不同浏览器对日期处理的兼容性。
通过以上封装函数,开发者可以更方便地进行日期格式化操作,提升代码的可读性和可维护性。