600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 封装js日期格式化函数

封装js日期格式化函数

时间:2022-08-03 07:56:21

相关推荐

封装js日期格式化函数

网上有很多格式化日期的函数,你会用,但你真的知道它的原理吗?

// 输入:time, fmt。fmt输入例子:'yyyy-MM-dd'或者‘yyyy年MM月dd天’或者'mm:ss'const formatDate = (time, fmt) => {// 转成日期对象const date = new Date(time);// 由于年一般是4位,我们先特殊处理if (/(y+)/.test(fmt)) {// 使用正则表达式匹配y的部分fmt = fmt.replace(RegExp.$1, // RegExp.$1记录着我们正则表达式括号包含的匹配部分// 获取年份,转成日期,看有多少个y,就截取多少位的年(date.getFullYear() + '').substr(4 - RegExp.$1.length) // );}// 处理2位的日期const obj = {// 之所以用M+,d+这种来当属性名,是因为这样可以把他们当作正则表达式来使用'M+': date.getMonth() + 1,'d+': date.getDate(),'h+': date.getHours(),'m+': date.getMinutes(),'s+': date.getSeconds(),};// 循环遍历objfor (let key in obj) {if (new RegExp(`(${key})`).test(fmt)) {fmt = fmt.replace(RegExp.$1, (obj[key] + '').padStart(2, '0')); // 这里和年那里替换差不多}}return fmt;};

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。