2012-02-08 2 views
3

사용자가 날짜를 선택할 때 jquery datepicker에서 주 번호를 얻었습니다. 그러나 이제 나는 그 주 내내 모든 날을 보내고 싶다.ISO 8601 주 번호가 주어지면 그 주간에 날짜를 얻는 방법

선택한 날짜가 tr 인 모든 td를 반복하는 클릭 이벤트를 추가하여 값을 부여하지만 더 안정적인 방법을 찾고 있습니다.

제 질문은 주어진 날짜와 주 번호 (iso 8601 형식)가 주어지기 때문에 자바 스크립트로 그 주간에 다른 날짜를 어떻게 파생시킬 수 있습니까?

+0

ISO 8601 형식의 주간 일정은 어떻게됩니까? – rekire

+0

미안하지만 Iso 8601 형식의 날짜는 요일 번호가 아닙니다. 따라서 : 년 월 일 – Jareish

답변

7

선택한 요일 (getDate())과 요일 (getDay())을 뺀 값으로 해결할 수 있습니다. 이렇게하면 일주일의 첫 번째 날이됩니다. 그런 다음 for 루프를 7 시까 지 사용하여 다른 모든 요일을 얻을 수 있습니다. 당신은 weeknumber 필요하지 않습니다.

var selected_date = $(this).datepicker('getDate'); //the date the user has clicked 
var first_day_of_the_week = new Date(selected_date.getFullYear(),selected_date.getMonth(),selected_date.getDate() - selected_date.getDay() + 1); 

var days = []; 
for(var i = 0; i < 7; i++){ 
    var day = new Date(first_day_of_the_week.getFullYear(), 
     first_day_of_the_week.getMonth(), 
     first_day_of_the_week.getDate() + i); 

    days.push(day); 
} 

console.log(days); 
+0

고마워, 그랬어! – Jareish

0

여기 getWeek 기능의 자바 스크립트 구현있다 : 당신은 칠일이 날짜의 양쪽 날짜에 그것을 실행하고 날짜를 유지할 수

는 주 번호 는 똑같은.

+0

이것은 여전히 ​​모든 DOM 요소를 반복하여 날짜를 빼고 그 다음에 일주일인지 비교해야합니다. – Jareish

+0

아, 아니요. 기존의 Date 객체에서 새 Date 객체를 만들 수 있다는 의미였습니다. 'var one_day_earlier = new Date; one_day_earlier.setDate (기존 _ 날짜 .getDate() - 1);'. http://stackoverflow.com/questions/1187824/finding-date-by-subtracting-x-number-of-days-from-a-particular-date-in-javascrip –

관련 문제