export function formatDate (date, fmt) { //获取年份 if (/(y+)/.test(fmt)) { // 把数字变成字符串 let dateY = date.getFullYear() + ""; //RegExp.$1 在判断中出现过,且是括号括起来的,所以 RegExp.$1 就是 "yyyy" fmt = fmt.replace(RegExp.$1, dateY.substr(4 - RegExp.$1.length)); } //获取其他 let o = { "M+": date.getMonth() + 1 + '月', "d+": date.getDate(), "h+": date.getHours(), "m+": date.getMinutes(), "s+": date.getSeconds(), }; console.log(o) for (const k in o) { if (new RegExp(`(${k})`).test(fmt)) { let str = o[k] + ""; console.log(11, str, RegExp.$1) fmt = fmt.replace( RegExp.$1, RegExp.$1.length === 1 ? str : (("00" + str).substr(str.length)) ); console.log('fmt', fmt) } } return fmt; }
时间: 2024-02-14 15:14:33 浏览: 87
这是一个 JavaScript 函数,用于格式化日期。
函数名:formatDate
参数:
- date:日期对象
- fmt:格式字符串,例如 "yyyy-MM-dd hh:mm:ss"
返回值:格式化后的日期字符串。
函数实现:
- 首先,使用正则表达式匹配格式字符串中的年份标识符("y+"),替换成日期对象中的年份。
- 然后,定义一个对象 o,包含其他需要格式化的日期部分(月份、日、小时、分钟、秒),并遍历该对象。
- 对于每个日期部分,使用正则表达式匹配格式字符串中对应的标识符(例如 "M+" 表示月份),并替换成对应的日期部分。
- 最后,返回格式化后的日期字符串。
请注意,由于该函数使用了正则表达式,因此在使用时需要特别小心,以避免出现不必要的错误。
阅读全文