js实现dateformat
实现 JavaScript 日期格式化
在 JavaScript 中,日期格式化可以通过多种方式实现。以下是几种常见的方法:
使用原生 Date 方法
JavaScript 的 Date 对象提供了一些原生方法来获取日期的各个部分,可以手动拼接成需要的格式:

const date = new Date();
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
const formattedDate = `${year}-${month}-${day}`;
console.log(formattedDate); // 输出类似 "2023-05-15"
使用 Intl.DateTimeFormat
Intl.DateTimeFormat 是 JavaScript 内置的国际化 API,可以方便地格式化日期:
const date = new Date();
const formatter = new Intl.DateTimeFormat('en-US', {
year: 'numeric',
month: '2-digit',
day: '2-digit'
});
const formattedDate = formatter.format(date);
console.log(formattedDate); // 输出类似 "05/15/2023"
使用第三方库
如果需要更复杂的日期格式化,可以使用第三方库如 moment.js 或 date-fns:

// 使用 moment.js
const moment = require('moment');
const formattedDate = moment().format('YYYY-MM-DD');
console.log(formattedDate); // 输出类似 "2023-05-15"
// 使用 date-fns
const { format } = require('date-fns');
const formattedDate = format(new Date(), 'yyyy-MM-dd');
console.log(formattedDate); // 输出类似 "2023-05-15"
自定义格式化函数
可以编写一个自定义函数来格式化日期:
function formatDate(date, format = 'YYYY-MM-DD') {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return format
.replace('YYYY', year)
.replace('MM', month)
.replace('DD', day);
}
const formattedDate = formatDate(new Date(), 'YYYY-MM-DD');
console.log(formattedDate); // 输出类似 "2023-05-15"
常见日期格式示例
以下是一些常见的日期格式示例:
const date = new Date();
// ISO 格式
console.log(date.toISOString()); // "2023-05-15T12:34:56.789Z"
// 本地时间字符串
console.log(date.toLocaleDateString()); // "5/15/2023"(根据地区不同)
// 自定义格式
console.log(`${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`); // "2023/5/15"
注意事项
- 月份是从 0 开始计数的,所以
getMonth()返回的值需要加 1。 - 使用
padStart可以确保月份和日期始终是两位数。 - 如果需要更复杂的格式化(如星期、时间等),可以扩展自定义函数或使用第三方库。






