js实现dateformat
日期格式化方法
JavaScript 提供了多种方式实现日期格式化,以下是常见的几种方法:
使用原生 Date 对象方法
const date = new Date();
const formattedDate = `${date.getFullYear()}-${(date.getMonth()+1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;
console.log(formattedDate); // 输出类似 "2023-05-15"
使用 toLocaleDateString()
const date = new Date();
const options = { year: 'numeric', month: '2-digit', day: '2-digit' };
const formattedDate = date.toLocaleDateString('zh-CN', options);
console.log(formattedDate); // 输出类似 "2023/05/15"
使用 Intl.DateTimeFormat

const date = new Date();
const formatter = new Intl.DateTimeFormat('zh-CN', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
});
console.log(formatter.format(date)); // 输出类似 "2023/05/15 14:30:45"
自定义格式化函数
function formatDate(date, format) {
const map = {
'yyyy': date.getFullYear(),
'MM': (date.getMonth() + 1).toString().padStart(2, '0'),
'dd': date.getDate().toString().padStart(2, '0'),
'HH': date.getHours().toString().padStart(2, '0'),
'mm': date.getMinutes().toString().padStart(2, '0'),
'ss': date.getSeconds().toString().padStart(2, '0')
};
return format.replace(/yyyy|MM|dd|HH|mm|ss/g, matched => map[matched]);
}
const now = new Date();
console.log(formatDate(now, 'yyyy-MM-dd HH:mm:ss')); // 输出类似 "2023-05-15 14:30:45"
使用第三方库
对于更复杂的日期格式化需求,可以考虑使用第三方库:
-
moment.js

const moment = require('moment'); console.log(moment().format('YYYY-MM-DD HH:mm:ss')); -
date-fns
const { format } = require('date-fns'); console.log(format(new Date(), 'yyyy-MM-dd HH:mm:ss')); -
day.js
const dayjs = require('dayjs'); console.log(dayjs().format('YYYY-MM-DD HH:mm:ss'));
时区处理
处理不同时区的日期格式化:
const date = new Date();
const options = {
timeZone: 'Asia/Shanghai',
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
};
console.log(new Intl.DateTimeFormat('zh-CN', options).format(date));
以上方法涵盖了从简单到复杂的各种日期格式化需求,可以根据具体场景选择合适的方法。






