我正在我正在使用的App中的几个地方使用Momentjs,它运行正常。但是,我使用的是endOf('week')
,这是星期六的结果。我期待的是周日。
我一直在努力寻找有关它的信息,但它没有在任何地方突出,如何绕过它而不用改变它所使用的代码。从我的挖掘中,Moment会自动应用区域设置。通过查看其中一个语言环境文件,我可以看到配置的这一天(dow)的位置。
示例:moment / locale / en-gb.js
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}
所以我收集的是如果我在GB,周末将是星期日。但我不清楚的是,美国的默认值在哪里? locale目录中没有en-US.js,它似乎默认为dow:0
我想确定的是:
我确实修改了moment.min.js并将dow从0更改为1,这导致星期日在整个应用程序中结束。但这不是我想做的事情。
希望这不仅仅是我错过了某处的答案。
欢迎任何建议。
谢谢。
更新1
使用:
答案 0 :(得分:2)
一周的系统并不是最容易理解的。也就是说,默认的'en'被理解为与'en-us'相同。如果要将星期几更新为星期日,则可以使用区域设置自定义。确保您使用的是2.12或更高版本,就像引入updateLocale功能时一样。然后只需运行:
moment.updateLocale('en', {week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}});
这导致:
moment().endOf('week').format()
"2016-07-03T23:59:59-05:00"
如果你使用2.8到2.11,语法就是:
moment.locale('en', {week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
}});
所以,并非完全不同,但有点含糊不清。