Обратите внимание, что в разделе i18n документов указано:
По умолчанию Moment.js поставляется с английскими (США) языковыми строками.Если вам нужны другие локали, вы можете загрузить их в Moment.js для дальнейшего использования.
Так что, если вы хотите использовать en-gb
локаль, вы явно загрузили ее (в браузере вы можете использоватьen-gb.js
файл или moment-with-locales.js
, а затем задайте локаль с помощью moment.locale('en-gb')
).
Вам не нужно использовать year()
setter, поскольку он устанавливает год на 2019
, а moment().year(2019).isoWeek(1)
дает вам первый isoweek из 2020
.Вы можете создать моментальный объект для данного года, используя moment({y: year})
вместо.
Вы должны использовать week()
вместо isoWeek
если вы хотите получить результаты, зависящие от локали:
Поскольку разные локали по-разному определяют нумерацию недель в году, Moment.js добавил moment#week
, чтобы получить / установить локализованную неделю года.
Неделя года меняется в зависимости от того, какой день является первым днем недели (воскресенье, понедельник и т. Д.), И какая неделя является первой неделей года.
Здесь полныйПример кода:
// Set locale to British English
moment.locale('en-gb');
var year = 2019;
var firstMonday = moment({y: year}) // get first day of the given year
.week(1) // get the first week according locale
.startOf('week'); // get the first day of the week according locale
// Show result
console.log(firstMonday.format());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment-with-locales.min.js"></script>
Вы можете использовать format()
для отображения значения объекта момента.