时刻.JS - 从周数中获取日期



我在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>

div class="one_answers">

另一种方法是使用格式字符串

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,等等。您应该始终使用两位数字来表示一周。

最新更新