Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get first date and last date of the week from week number and year?

In JavaScript I want to get first date of the week and last date of the week by week number and year only.

For example if I my input is:

2(week),2012

Then my output should be:

2012-01-08 and 2012-01-14

like image 305
balaphp Avatar asked Jan 10 '12 12:01

balaphp


2 Answers

Try this:

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 contains the first day of the week
n2 contains the last day of the week

As for the constants:
604800000 is one week in milliseconds
518400000 is six days

like image 116
bardiir Avatar answered Oct 02 '22 21:10

bardiir


A little change to @bardiir 's answer, if the first day of the year is not Sunday(or Monday) that result is not correct. You should minus the number of the first day.

Changed code

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.toString());
console.log(n2.toString());

if you wish the first is Sunday, change (firstDay-1) to firstDay

like image 21
Xig480 Avatar answered Oct 02 '22 21:10

Xig480