关于momentjs:Moment.js一周的第一天不正确

Moment.js first day of the week incorrect

我是第一次使用Moment.js。我尝试检索一周中第一天的日期,而在欧洲,通常是星期一。无论做什么,我都会在一周的第一天得到星期日。

我试图设置不同的语言(本地或全局),但无济于事。我使用moment.js github页面中的langs.min.js文件。语言文件" en-gb"和" fr"具有以下代码行:

1
dow : 1, // Monday is the first day of the week.

因此,当我要求每周的第一天时,我会得到星期一的日期吗?我一直得到星期日作为输出。

1
2
3
4
5
6
7
8
9
10
11
// Create moment object
var localLang = moment();

// Set language to french
localLang.lang('fr');

// Test language
localLang.lang(); // Output: fr

// Retrieve first day of the week and format it
var dow = localLang.startOf('week').format('dddd DD-MM-YYYY'); // Output: dimanche 14-04-2013

Dimanche是星期天的法语。如您所见,moment.js可以成功使用语言文件,但不使用星期几配置

JSfiddle用moment.js和langs.js进行测试:
JSFiddle

编辑:
我可以用day(1)而不是startOf('week')来获取星期一而不是星期日的日期。但是使用day(0)仍然可以得到星期日。为什么不按语言文件中的配置在一周的第一天星期一。


对于最近遇到此问题的任何人,现在都支持lang方法来设置特定于语言环境的设置。

将第一周设置为星期一:

1
2
3
4
5
6
7
moment.lang('zh-cn', {
    week : {
        dow : 1 // Monday is the first day of the week
    }
});

var date = moment().weekday(0); // date now is the first day of the week, (i.e., Monday)


我们正在努力添加可识别语言环境的工作日,但尚未完成。

https://github.com/timrwood/moment/issues/613#issuecomment-13786429


我设法使其工作。 我用下面的代码:

1
2
3
4
5
6
7
8
9
10
    $(#id_Of_Element).daterangepicker({
        weekStart: 2,

        locale: {
            customRangeLabel: 'Custom Range',
            daysOfWeek: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
            monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
            firstDay: 1
        }
});