【问题标题】:Moment.js locale, format output arrayMoment.js 语言环境,格式化输出数组
【发布时间】:2017-08-08 08:54:56
【问题描述】:

我尝试使用 moment.js 来显示这两周的天数。

我使用法语语言环境来显示这样的日期:

  • lundi 13/3 // moment.js 格式 = 'dddd D/M'。 Lundi = 星期一在法语中
  • 狂欢节 14/3

在head中设置moment.js语言环境后

<script>
  moment.locale('fr');
</script>

下面的函数构建了一个包含正确日期的数组(从星期一开始,如法语语言环境中设置的那样),但我无法以我想要的格式显示这些日子。

function thisFortnight() {

    var startFortnight = moment().startOf('week');
    var endFortnight = startFortnight.clone().add(13, 'd');

    var days = []
    var day = startFortnight;

    while (day <= endFortnight) {
        days.push(day.toDate());
        day = day.clone().add(1, 'd');
    }

    var eDisplayMoment = document.getElementById('Fortnight');
    eDisplayMoment.innerHTML = days;

}

输出:

2017 年 3 月 13 日星期一 00:00:00 GMT+0100 (CET),2017 年 3 月 14 日星期二 00:00:00 GMT+0100 (CET),2017 年 3 月 15 日星期三 00:00:00 GMT+0100 (CET) ,2017 年 3 月 16 日星期四 00:00:00 GMT+0100 (CET),2017 年 3 月 17 日星期五 00:00:00 GMT+0100 (CET),2017 年 3 月 18 日星期六 00:00:00 GMT+0100 (CET),星期日2017 年 3 月 19 日 00:00:00 GMT+0100 (CET),2017 年 3 月 20 日星期一 00:00:00 GMT+0100 (CET),2017 年 3 月 21 日星期二 00:00:00 GMT+0100 (CET),3 月 22 日星期三2017 00:00:00 GMT+0100 (CET),2017 年 3 月 23 日星期四 00:00:00 GMT+0100 (CET),2017 年 3 月 24 日星期五 00:00:00 GMT+0100 (CET),2017 年 3 月 25 日星期六 00 :00:00 GMT+0100 (CET),2017 年 3 月 26 日星期日 00:00:00 GMT+0100 (CET)

应该是: lundi 13/3、mardi 14/3、mercredi 15/3 等

我用 .format('dddd D/M') 尝试了很多解决方案,但都没有成功。

感谢您的帮助

【问题讨论】:

    标签: javascript arrays date datetime momentjs


    【解决方案1】:

    day.toDate() 返回一个原生 JS 日期,你想使用时刻对象所以使用day.format('dddd D/M')

    例如

    var d = new moment();
    console.log(d.format('dddd D/M'))
    
    function thisFortnight() {
    
        var startFortnight = moment().startOf('week');
        var endFortnight = startFortnight.clone().add(13, 'd');
    
        var days = []
        var day = startFortnight;
    
        while (day <= endFortnight) {
            days.push(day.format('dddd D/M'));
            day = day.clone().add(1, 'd');
        }
    
        var eDisplayMoment = document.getElementById('Fortnight');
        eDisplayMoment.innerHTML = days.join('<br>');
    
    }
    
    window.onload = thisFortnight;
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/locale/fr.js"></script>
    
    <div id="Fortnight"></div>

    【讨论】:

      猜你喜欢
      • 2020-03-04
      • 1970-01-01
      • 2015-02-06
      • 2016-03-29
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多