我第一次和Moment.js合作。我试图找回一周中第一天的日期,而在欧洲,这通常是星期一。无论我做什么,我都会在周日的第一天得到周日。
我试图设置不同的语言(本地或全球),但无济于事。我使用moment.js github page中的langs.min.js文件。 “en-gb”和"fr"的语言文件包含以下代码行:
dow : 1, // Monday is the first day of the week.
所以当我要求一周的第一天正确时,我会得到星期一的日期吗?我一直把周日作为输出。
// 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可以成功使用语言文件,但不使用星期几的配置
编辑:
我可以使用day(1)
代替startOf('week')
获取星期一而不是星期日的日期。但是使用day(0)
我仍然得到星期天的结果。为什么不是星期一的第一天,如语言文件中所配置的那样。
答案 0 :(得分:33)
对于最近遇到此问题的任何人,现在支持lang
方法来设置特定于语言环境的设置。
将第一周设为星期一:
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)
答案 1 :(得分:6)
我们正在努力添加区域设置感知的工作日,但尚未完成。
https://github.com/timrwood/moment/issues/613#issuecomment-13786429
答案 2 :(得分:-3)
我设法让它发挥作用。我使用下面的代码:
$(#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
}
});