我在moment.js的文档中没有看到这一点。也许我跳过了它,但我想将一年中的一周数字转换为日期格式。
例如
week: number = 13
year: number = 2017
date: date = // get date format for the first day of that week
我正在使用 moment.js,但我在文档中找不到我想要的内容。这可能做到吗?我已经为普通的javascript找到了一些答案,但是由于我已经在使用moment.js,我认为可能有一种简单的方法可以做到这一点
是的,这是可能的:
var date = moment('2017').add(13, 'weeks');
请注意,moment('2017')
返回 2017 年 1 月 1 日。
使用 startOf('isoweek'(,您将获得一周的第一天。
moment('2017').add(13, 'weeks').startOf('week').format('DD MM YYYY'); // "02 04 2017"m, gives you Sunday(last day of the week)
moment('2017').add(13, 'weeks').startOf('isoweek').format('DD MM YYYY');
"27 03 2017"// first day of the week ( gives you Monday)
无需添加: moment().year(2017).week(13);
<</p>
另一种方法是使用格式字符串
var dateLocale = moment(week + " " + year, "ww gggg");
var dateISO = moment(week + " " + year, "WW GGGG");
moment.js
似乎可以理解默认 HTML input type="week"
元素生成的表达式,例如:2022-W26
。
因此,您可以使用 moment 将这些表达式转换为日期,如下所示:
const weekMoment = moment('2022-W26') // week 26 of year 2022
const weekStart = weekMoment.toDate() // Mon Jun 27 2022 00:00:00 GMT+0100
这样,您不需要创建日期,然后向其添加周数。一会儿打电话就够了。
只是另一个注意事项:要使其正常工作,请不要忘记垫子的周数,例如:周1
应该是01
,等等。您应该始终使用两位数字来表示一周。