2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > JS日期格式化——数字日期转中文日期(封装函数 dayjs时间格式化YYYY-MM-DD)

JS日期格式化——数字日期转中文日期(封装函数 dayjs时间格式化YYYY-MM-DD)

时间:2024-02-22 17:37:47

相关推荐

JS日期格式化——数字日期转中文日期(封装函数 dayjs时间格式化YYYY-MM-DD)

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进行时间格式的转换~感兴趣的小伙伴可以订阅本专栏,方便后续了解学习~觉得这篇文章有用的小伙伴们可以点赞➕收藏➕关注哦~

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