如何从周数和年份获得一周的第一个日期和最后一个日期?

时间:2012-01-10 12:18:23

标签: javascript jquery

在JavaScript中,我希望以周数和年份的形式获得本周的第一个日期和周的最后日期。

例如,如果我的输入是:

2(week),2012

然后我的输出应该是:

2012-01-08 and 2012-01-14

4 个答案:

答案 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)

您可以查看并尝试使用以下链接。

How to get first and last day of the week in JavaScript

这对你有帮助。

感谢。

答案 3 :(得分:-1)

   dt = new Date();
   var firstDateOfWeek=(dt.setDate(dt.getDate()-dt.getDay()));
   var lastDateOfWeek=(dt.setDate(dt.getDate()+6-dt.getDay()));