时间格式化小笔记,后续有新需求再对应添加功能,已知功能有
1.格式化时间
2.在对应的时间上增加年月日时分秒
3.12小时制,24小时制
调用:
dateutil(new Date()).format("YYYY-MM-DD HH:mm:ss") // 格式化时间
dateutil(new Date("2024-03-31 12:59:12")).add(1, 'd').format("YYYY-MM-DD HH:mm:ss");//添加一天
dateutil(new Date("2024-03-31 12:59:12")).add(5, 'mm').format("HH:mm") // 添加5分钟
dateutil(new Date()).format("hh A") // 12小时制。结果: 02 PM
源码
const dateutil = function (date) {
// 添加方法到 dateutil 返回的对象上
var utilObj = {
add: function (amount, unit) {
switch (unit) {
case 'y':
date.setFullYear(date.getFullYear() + amount);
break;
case 'm':
date.setMonth(date.getMonth() + amount);
break;
case 'd':
date.setDate(date.getDate() + amount);
break;
case 'hh':
date.setHours(date.getHours() + amount);
break;
case 'mm':
date.setMinutes(date.getMinutes() + amount);
break;
case 'ss':
date.setSeconds(date.getSeconds() + amount);
break;
default:
console.error('Invalid unit specified');
}
return utilObj; // 返回当前对象,以便链式调用
},
format: function (formatString) {
var hours = date.getHours();
var period = hours >= 12 ? 'PM' : 'AM';
hours = hours % 12;
hours = hours ? hours : 12; // 将 0 点转换为 12 点
var year = date.getFullYear();
var month = ('0' + (date.getMonth() + 1)).slice(-2);
var day = ('0' + date.getDate()).slice(-2);
var minutes = ('0' + date.getMinutes()).slice(-2);
var seconds = ('0' + date.getSeconds()).slice(-2);
if (formatString.includes('A')) {
var formattedDate = formatString
.replace('YYYY', year)
.replace('MM', month)
.replace('DD', day)
.replace('hh', ('0' + hours).slice(-2))
.replace('mm', minutes)
.replace('ss', seconds)
.replace('A', period);
} else {
var formattedDate = formatString
.replace('YYYY', year)
.replace('MM', month)
.replace('DD', day)
.replace('hh', ('0' + date.getHours()).slice(-2))
.replace('mm', minutes)
.replace('ss', seconds);
}
return formattedDate;
}
};
return utilObj;
};