JS数字日期转中文日期
往期相关文章场景复现封装函数(数字日期转中文日期)实际应用往期相关文章
场景复现
在团队或者企业的后台管理系统中,会涉及到证书的颁发与生成,各类办公文件也会涉及到日期的处理——中文格式(二〇二二年十二月二十二日)。
效果如下:
下面具体介绍如何将数字格式的日期(-12-22)转化为中文格式的日期(二〇二二年十二月二十二日)。
封装函数(数字日期转中文日期)
str为日期的字符串形式,可以是-04-03,04月03日,必须每位都有,0位写0。要完整的YYYYMMDD。(如果你的日期格式是其他的格式,可以尝试用dayjs进行类型转换【后期文章会详细介绍dayjs使用】)
number2Chinese(str){let chinese=['〇','一','二','三','四','五','六','七','八','九','十'];let numStr=str.replace(/[^0-9]+/g, '');let year=chinese[numStr[0]]+chinese[numStr[1]]+chinese[numStr[2]]+chinese[numStr[3]];let month=numStr[4]==='0'?chinese[numStr[5]]:chinese[10]+chinese[numStr[5]];let day='';if (numStr[6] === '0') {day = chinese[numStr[7]];} else if (numStr[6] === '1') {if (numStr[7] === '0') {day = chinese[10];} else {day = chinese[10] + chinese[numStr[7]];}} else if (numStr[6] === '2' || numStr[6] === '3') {if (numStr[7] === '0') {day = chinese[numStr[6]] + chinese[10];} else {day = chinese[numStr[6]] + chinese[10] + chinese[numStr[7]];}}return year+'年'+month+'月'+day+'日';}
解释一下为什么要对这个函数进行封装:
因为你可能不止一次使用这个函数,如果不采用封装的思想,那么每当你使用的时候,你都要重新写一次这个函数,这样代码量很大,利用率不高。但是如果你封装了,就可以在很多场景进行复用,减少代码量,提高代码的利用率。
实际应用
调用此函数,传入参数"-12-22",在控制台打印结果。
console.log("日期大写转换",number2Chinese("-12-22"))
很显然,效果实现了。我们再试试"12月22日",看看效果:
console.log("日期大写转换",number2Chinese("12月22日"))
我们再尝试"1222",看看效果:
❌但是!!当我们输入"222"、"-2-22"或者"2月22日"时,结果就不对了。
这是因为输入的格式不满足标准的YYYYMMDD格式。所以在使用此函数时,需要进行时间格式的转换。
下面我们来获取当前时间,并进行中文格式日期转换。
const nowDate = ref<Dayjs>() // 获取当前时间const chineseDate = () => {console.log(number2Chinese(dayjs(nowDate.value).format("YYYY-MM-DD"))) // dayjs转标准格式 调用日期转中文格式函数 在控制台输出}chineseDate()
控制台转格式结果:
数字格式转中文格式已经成功!
下期文章将介绍dayjs的使用,以及使用dayjs进行时间格式的转换~感兴趣的小伙伴可以订阅本专栏,方便后续了解学习~觉得这篇文章有用的小伙伴们可以点赞➕收藏➕关注哦~