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

往期相关文章

文章内容 文章链接
JS数组对象——根据日期进行排序按照时间进行升序或降序排序 https://blog.csdn.net/XSL_HR/article/details/128579840?spm=1001.2014.3001.5501
JS数组对象——英文按照首字母进行排序 https://blog.csdn.net/XSL_HR/article/details/128579936?spm=1001.2014.3001.5501
JS数组对象——中文按照首字母排序(分组) https://blog.csdn.net/XSL_HR/article/details/128580085?spm=1001.2014.3001.5501

场景复现

在团队或者企业的后台管理系统中,会涉及到证书的颁发与生成,各类办公文件也会涉及到日期的处理——中文格式(二〇二二年十二月二十二日)

效果如下在这里插入图片描述


下面具体介绍如何将数字格式的日期(2022-12-22)转化为中文格式的日期(二〇二二年十二月二十二日)

封装函数(数字日期转中文日期)

str为日期的字符串形式,可以是2019-04-03,2019年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+'日';
    }

解释一下为什么要对这个函数进行封装

  • 因为你可能不止一次使用这个函数,如果不采用封装的思想,那么每当你使用的时候,你都要重新写一次这个函数,这样代码量很大,利用率不高。
  • 但是如果你封装了,就可以在很多场景进行复用,减少代码量,提高代码的利用率

在这里插入图片描述

实际应用

调用此函数,传入参数"2022-12-22",在控制台打印结果。

console.log("日期大写转换",number2Chinese("2022-12-22"))

在这里插入图片描述
很显然,效果实现了。我们再试试"2022年12月22日",看看效果:

console.log("日期大写转换",number2Chinese("2022年12月22日"))

在这里插入图片描述
我们再尝试"20221222",看看效果:
在这里插入图片描述

扫描二维码关注公众号,回复: 14739305 查看本文章

❌但是!!当我们输入"2022222"、"2022-2-22"或者"2022年2月22日"时,结果就不对了。
在这里插入图片描述

这是因为输入的格式不满足标准的YYYYMMDD格式。所以在使用此函数时,需要进行时间格式的转换。

下面我们来获取当前时间,并进行中文格式日期转换

const nowDate = ref<Dayjs>() // 获取当前时间
const chineseDate = () => {
    
    
    console.log(number2Chinese(
        dayjs(nowDate.value).format("YYYY-MM-DD"))
    )  // dayjs转标准格式 调用日期转中文格式函数 在控制台输出
}
chineseDate()

控制台转格式结果:
在这里插入图片描述
数字格式转中文格式已经成功!
在这里插入图片描述


下期文章将介绍dayjs的使用,以及使用dayjs进行时间格式的转换~
感兴趣的小伙伴可以订阅本专栏,方便后续了解学习~
觉得这篇文章有用的小伙伴们可以点赞➕收藏➕关注哦~

猜你喜欢

转载自blog.csdn.net/XSL_HR/article/details/128607024