【问题标题】:Momentjs Convert total weeks in to month abbreviation (javascript)Momentjs 将总周数转换为月份缩写(javascript)
【发布时间】:2019-11-05 06:55:05
【问题描述】:

我得到了大量的序列号,其中包括制造日期为星期。

示例序列号:

ABC D 08 05 1234

  • 08 是年份 (2008)
  • 05 是一周 (01 - 第一周,02 - 第二周,03 - 第三周,04 - 第四周,05 - 第五周等)

我想将其转换为 2008 Feb 格式。有什么简单的方法可以做到这一点吗?请帮帮我。

谢谢。

【问题讨论】:

  • moment().startOf('year').add(weekNo * 7, 'd').format('YYYY MMM') 怎么样?
  • 这取决于周数。 ISO 8601 周从一年中第一个星期四的星期一开始。还有其他计划,例如第一个星期一、一月的第一个等。

标签: javascript reactjs date momentjs


【解决方案1】:

使用format()

[] - 格式字符串中的转义字符

YY - 年份

ww - 周

console.log(moment('ABC D 08 05 1234', '[ABC D] YY ww [1234]').format('YYYY MMM'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

【讨论】:

    【解决方案2】:

    最简单的解决方案是使用输入字符串和parsing tokens中的适当值:

    let s = 'ABC D 08 05 1234';
    
    console.log(
      moment(s.substr(6, 5), 'YY ww').format('YYYY MMM')
    );
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

    但是,这假定星期是根据 moment.js 默认使用的方案编号的。

    • 'w' 使用“语言环境”周,不管它是什么
    • 'W' 使用 ISO 8601 周,指定从一年中的第一个星期四开始的一周的星期一开始

    【讨论】:

    • 它仍然输出 2008 Jan,这是正确的。 2008 年 1 月有 5 周……我的错!
    【解决方案3】:

    你可以试试这个

    var date=moment('ABC D 08 05 1234', '[] YY ww []').format('MMM YYYY');  
    
    document.write(date);
    

    【讨论】:

      猜你喜欢
      • 2014-03-30
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-27
      相关资源
      最近更新 更多