我需要使用Javascript / moment.js
获取周开始和结束日期作为输入,我有两个值:年和周,这是时刻的isoweek.js
year =' 2016' 周=' 1'
应该给我04.01.2016和10.01.2016
其中日期具有德语格式时刻()。格式(' DD.MM.YYYY');
答案 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周的日期与isoWeek
或week
一起初始化时刻实例,则该时刻实例的年份组件设置为上一年。然后所有额外的时刻方法都在"错误"年。
因此,使用moment([year, 5, 30])
初始化时刻实例。当然,在2016年1月3日之后的任何其他日子也是如此,只有前一年第53周的几天就会导致这个问题。
答案 1 :(得分:1)
EAST