moment函数转换后的时间不正确,带有 “sa“等奇怪的字母

目录

一、问题

二、解决方法

 三、总结


一、问题

1.使用moment函数转换当前日期的格式为  '年-月-日',结果转换出来竟然有一些 字母!!!

迷之自信,这不就是这样吗?给了转换格式,给了转换时间,字母就出现这种奇葩的情况

1)代码如下

 let dateFormate= 'yyyy-MM-dd';
 const showDate=this.moment(new Date()).format(dateFormate);
 console.log("showDate",showDate)

2)结果如图1-1所示。竟然输出了 2022-09-Sa 

图 1-1 错误输出

二、解决方法

1.仔细看了moment函数的使用方法format() | Moment.js 文档,才发现我把 转换格式的参数写错了。上面'yyyy-MM-dd'里面的‘dd'应该改成大写的'DD'

这个主要是因为 element-ui的时间组件里面 天 格式化时都用的是 小写 'dd'   ⊙﹏⊙,然后我就这样写了。

moment.js中 'dd'表示取星期,图1-1 中的 'Sa'是 'saturday'星期六的缩写

1)代码如下

            let dateFormate=this.dateFormate : 'yyyy-MM-DD';
            const showDate=this.moment(new Date()).format(dateFormate);
            console.log("showDate",showDate)

2)结果如图2-1所示,正确了

图 2-2 正确转换

2.测试了一下其他 转换参数 大小写写错后,也会有格式各样的奇葩错误,月写错了月大于>12,实际上去了分钟,小时小写时转成了12小时制的小时表示。

1)代码如下

            let dateFormate= 'yyyy-MM-DD';
            const showDate=this.moment(new Date()).format(dateFormate);
            console.log("showDate",showDate)
            let dateFormate1= 'yyyy-mm-DD';//错误
            const showDate1=this.moment(new Date()).format(dateFormate1);
            console.log("showDate1",showDate1)
            let dateFormate2= 'HH';
            const showDate2=this.moment(new Date()).format(dateFormate2);
            console.log("showDate2",showDate2)
            let dateFormate3='hh';//错误
            const showDate3=this.moment(new Date()).format(dateFormate3);
            console.log("showDate3",showDate3)

2)结果如图2-3所示

 三、总结

1.moment.js格式化出现莫名其妙的结果可能是因为 格式化字符串中的 大小写 写错了moment.js格式化正确方式 可以参考官方文档 format() | Moment.js 文档

2.还有不同的库,使用的时间格式可能是不一样的。如:element-ui使用 小写的 dd 来表示 天,而moment.js使用大写的 DD来表示天,小写的 dd表示取日期对应的星期的 缩写。

3.所以,使用格式化函数时如果发现转换后的值 奇奇怪怪的,一定要 去找到库对应的文档,仔细对应检查是否有有大小写或其他格式化字符与文档描述不一致的情况

/*

希望对你有帮助!

如有错误,欢迎指正!非常感谢!

感谢oxl提前采坑 0--0

*/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值