나는 Google 주석이 달린 타임 라인을 만들려고합니다. 그 때문에 이벤트 날짜를 입력해야합니다. 내가 가진 유일한 정보는 년 &이고 ISO 주간 이벤트는입니다. Javascript에서 일년에 & 주 번호를 사용하여 Date 객체를 만드는 방법이 있습니까? 내가 봤지만 실현 가능한 해결책을 찾지 못했다.년 및 ISO 주 번호를 사용하여 날짜 개체를 만드는 방법은 javascript에 있습니까?
도움 주셔서 감사합니다.
나는 Google 주석이 달린 타임 라인을 만들려고합니다. 그 때문에 이벤트 날짜를 입력해야합니다. 내가 가진 유일한 정보는 년 &이고 ISO 주간 이벤트는입니다. Javascript에서 일년에 & 주 번호를 사용하여 Date 객체를 만드는 방법이 있습니까? 내가 봤지만 실현 가능한 해결책을 찾지 못했다.년 및 ISO 주 번호를 사용하여 날짜 개체를 만드는 방법은 javascript에 있습니까?
도움 주셔서 감사합니다.
ISO 주 월 금요일, 토요일이나 일요일에 01 한 경우는 주에,
월요일
에서 시작, 그것은 주에 (52) 또는 전년 나는 두 번째 Mr.s @ 케네 벡의 대답Date.weekofYear= function(s){
var yw= s.split(/\D+0?/),
weeks= 7*yw[1]-7,
date1= new Date(yw[0], 0, 1),
day1= date1.getDay(),
incr= (day1> 0 && day1<5)? -1: 1;
if(yw[2]) weeks+= (+yw[2])-1;// optional day in week
while(date1.getDay()!= 1){
date1.setDate(date1.getDate()+incr);
}
date1.setDate(date1.getDate()+weeks);
return date1;
}
Date.weekofYear('2010-20').toLocaleDateString()
// (use UTC methods to start the weeks on Greenwich instead of local time)
/* returned value: (String)
Monday, May 17, 2010
*/
흥미로운 문제. 여기 내 솔루션입니다 :
var week2date = (function() {
var weekToDate = {
// last week number in the month: [first date of each week]
4: [4, 11, 18, 25], // jan
8: [1, 8, 15, 22], // feb
13: [1, 8, 15, 22, 29], // march
17: [5, 12, 19, 26], // etc ...
22: [3, 10, 17, 24, 31],
26: [7, 14, 21, 28],
30: [5, 12, 19, 26],
35: [2, 9, 16, 23, 30],
39: [6, 13, 20, 27],
43: [4, 11, 18, 25],
48: [1, 8, 15, 22, 29],
52: [6, 13, 20, 27]
};
return function(week, year) {
if (week > 52 || week < 01) { return false; }
var d = new Date(),
lastw = 0,
month = 0;
for (var w in weekToDate) {
if (!weekToDate.hasOwnProperty(w)) { continue; }
if (w >= week) {
break;
}
lastw = w;
++month;
}
d.setFullYear(year || d.getFullYear(), month, weekToDate[w][week - lastw - 1]);
return d;
}
})();
사용 :
console.log(week2date(13));
console.log(week2date(38, 1983));
출력 :
내가 날짜 정보를 얻을 수 this table on wikipedia을 사용Mon Mar 29 2010 18:51:28 GMT-0700 (PST) {}
Tue Sep 20 1983 18:51:28 GMT-0700 (PST) {}
. 1 1 월 월요일, 화요일, 수요일 또는 목요일에있는 경우
53,하지만 난 아직 언급 할 수 있기 때문에, 나는 해 표현의 주에 대한 ISO 표기법 yyyy-Www
것을 추가 할 것입니다. 예 : 2000-W01
. 주의 채우기에주의하십시오.
아하지만 주 53이라고도하는 것이 있습니다. kennebec의 소식을 참조하십시오. – npup