计算2个日期之间的天数差
计算2个日期之间的天数差
在开始之前,请确保你对JavaScript的基本语法有所了解,特别是Date
对象的使用。我们的目标是创建一个函数,接收一个日期对象和一个格式字符串作为参数,然后返回按照指定格式格式化的日期字符串。
下面是一个简单的日期格式化函数实现,它支持年、月、日、时、分、秒的基本格式化:
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
字符串中的关键词替换为实际的日期值。现在,让我们通过几个例子来看看这个函数的使用方法:
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