Momentjs格式化周数问题

Moment.js是一个轻量级的js时间处理类库,其使用简单,方便了日常开发中对时间的操作,提高了开发效率。虽然大家经常用,但是我这次在项目中使用了一次,出现了严重的bug,下面就简单的把bug描述一下!

Moment有一个格式化的方法 format(),可以把日期格式化成需要的格式:http://momentjs.cn/docs/#/displaying/format/

2022-12-04T08:35:10.png

这里我特意把这几个标识出来,因为这个地方会存在问题。

我先写一个demo本地运行一下试试:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <script crossorigin="anonymous" integrity="sha512-CTSrPIDxxtTdaIYlTKHEyvHa+70TOhC1pY3PLDgrUqCFifFtV7KrucZCvPy2K7hB0HtKgt0r4INTGBISqnaLNg==" src="https://lib.baomitu.com/moment.js/2.29.4/moment.js"></script>
    <title>Document</title>
    <script>
      let t1 = moment('2014-12-31').format('YYYY-ww');
      let t2 = moment('2014-12-31').format('GGGG-WW');
      console.log(t1, t2);
    </script>
  </head>
  <body></body>
</html>

2022-12-04T08:47:55.png

问题就出现在跨年的时计算周数的时候,YYYY-wwGGGG-WW!这两个打印出来的,结果为:2014-012015-01,是不是挺诡异的。

遇到这种情况,只能以ISO格式去做转换才可以,这个坑还真有点深啊……

随机文章

添加新评论