IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Momentjs格式化周数问题

    王叨叨发表于 2022-12-04 16:49:00
    love 0

    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-ww和GGGG-WW!这两个打印出来的,结果为:2014-01和2015-01,是不是挺诡异的。

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



沪ICP备19023445号-2号
友情链接