在JavaScript中,我希望以周数和年份的形式获得本周的第一个日期和周的最后日期。
例如,如果我的输入是:
2(week),2012
然后我的输出应该是:
2012-01-08 and 2012-01-14
答案 0 :(得分:8)
试试这个:
var year = 2012;
var week = 2;
var d = new Date("Jan 01, " + year + " 01:00:00");
var w = d.getTime() + 604800000 * (week - 1);
var n1 = new Date(w);
var n2 = new Date(w + 518400000)
console.log(n1);
console.log(n2);
n1包含一周的第一天
n2包含一周的最后一天
至于常数:
604800000是一周,以毫秒为单位
518400000是六天
答案 1 :(得分:5)
对@bardiir的答案略有改动, 如果一年的第一天不是星期日(或星期一),则结果不正确。 你应该减去第一天的数量。
更改了代码
firstDay = new Date(2015, 0, 1).getDay();
console.log(firstDay);
var year = 2015;
var week = 67;
var d = new Date("Jan 01, " + year + " 01:00:00");
var w = d.getTime() - (3600000 * 24 * (firstDay - 1)) + 604800000 * (week - 1)
var n1 = new Date(w);
var n2 = new Date(w + 518400000)
console.log(n1);
console.log(n2);
如果您希望第一个是星期日,请将(firstDay-1)更改为
答案 2 :(得分:1)
答案 3 :(得分:-1)
dt = new Date();
var firstDateOfWeek=(dt.setDate(dt.getDate()-dt.getDay()));
var lastDateOfWeek=(dt.setDate(dt.getDate()+6-dt.getDay()));