使用javascript从年份和日历周获取周开始和结束日期

时间:2016-04-29 12:58:37

标签: javascript momentjs

我需要使用Javascript / moment.js

获取周开始和结束日期

作为输入,我有两个值:年和周,这是时刻的isoweek.js

year =' 2016' 周=' 1'

应该给我04.01.2016和10.01.2016

其中日期具有德语格式时刻()。格式(' DD.MM.YYYY');

2 个答案:

答案 0 :(得分:3)

评论中的解决方案将在01.01.2017生成错误的结果:

moment([2017,0,1]).year(2017).isoWeek(1).startOf('isoweek').format('DD.MM.YYYY');
// = '04.01.2016'

这个更稳定:

//var year = 2016;
//var week = 1;
var startDate = moment([year, 5, 30]).isoWeek(week).startOf('isoweek'); 
var endDate = moment(startDate).endOf('isoweek');
startDate.format('DD.MM.YYYY'); // = '04.01.2016'
endDate.format('DD.MM.YYYY'); // = '10.01.2016'

说明:如果您使用上一年第53周的日期isoWeekweek一起初始化时刻实例,则该时刻实例的年份组件设置为上一年。然后所有额外的时刻方法都在"错误"年。 因此,使用moment([year, 5, 30])初始化时刻实例。当然,在2016年1月3日之后的任何其他日子也是如此,只有前一年第53周的几天就会导致这个问题。

答案 1 :(得分:1)

EAST