2012-01-10 1 views
5

의 마지막 날을 얻을 수 있습니다 내가방법</p> <p>를 들어 .... 첫째 날과 내가 날짜와 주 번호 및 연도 별 날짜 지난 주 첫 주를 얻으려면 자바 스크립트에서 주 번호 및 연도

2(week),2012

같은 입력을 줄 경우이 값

2012-01-08 and 2012-01-14

하고 확인할 수 있습니다
+0

에 변화하고자하는 경우 어떻게 2013 년 2를 주면 어떨까요? 무엇을 반환해야합니까? –

+0

첫 번째 날짜와 마지막 날짜의 두 번째 주를 반환해야합니다. – balaphp

+0

@balaphp 실제로 2013 년 2 번째주의 첫 번째이자 마지막 날짜가 반환됩니다. 맞습니다. ? – Chandresh

답변

7

이 시도 :

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) 

N1은 주
N2의 첫 날을 포함는 주 상수로

의 마지막 날을 포함
604,800,000 밀리 초
을에 1 주일 518400000은 6 일입니다

+3

부정확, n1은 반드시 월요일이 아니며 n2는 반드시 일요일이 아닙니다. . –

3

@ 바디 어의 대답에 약간의 변화가 있습니다,해당 연도의 첫 번째 날이 일요일 (또는 월요일)이 아닌 경우 결과가 올바르지 않습니다. 첫날의 숫자를 뺀 숫자 여야합니다.

변경된 코드는

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)

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