함수 date2weekdate()

1 개요[ | ]

date to weekdate
  • YYYY-MM-DD → YYYY-Www-D
  • test set
2005-01-01 → 2004-W53-6
2005-01-02 → 2004-W53-7
2005-12-31 → 2005-W52-6
2007-01-01 → 2007-W01-1
2007-12-30 → 2007-W52-7
2007-12-31 → 2008-W01-1
2008-01-01 → 2008-W01-2
2008-12-29 → 2009-W01-1
2008-12-31 → 2009-W01-3
2009-01-01 → 2009-W01-4
2009-12-31 → 2009-W53-4
2010-01-03 → 2009-W53-7

2 Excel[ | ]

=YEAR(A1-WEEKDAY(A1-1)+4)&"-W"&TEXT(INT((A1-DATE(YEAR(A1-WEEKDAY(A1-1)+4),1,3)+WEEKDAY(DATE(YEAR(A1-WEEKDAY(A1-1)+4),1,3))+5)/7),"00")&"-"&WEEKDAY(A1,2)

3 JavaScript[ | ]

function date2weekdate(str) {
	var dt = new Date(str);
	var day = (dt.getDay()+6)%7 + 1; 
	dt.setDate( dt.getDate()-day + 2 ); 
	var firstThursday = dt.valueOf();
	dt.setMonth(0, 1);
	if(dt.getDay() != 4) dt.setMonth(0, (4-dt.getDay()+7)%7 + 1); 
	var w = 1 + Math.ceil((firstThursday - dt) / 604800000);
	w = ('0'+w).substr(-2);
	return dt.getFullYear()+'-W'+w+'-'+day;
}
console.log( date2weekdate('2005-01-01') ); // 2004-W53-6
console.log( date2weekdate('2005-01-02') ); // 2004-W53-7
console.log( date2weekdate('2005-12-31') ); // 2005-W52-6
console.log( date2weekdate('2007-01-01') ); // 2007-W01-1
console.log( date2weekdate('2007-12-30') ); // 2007-W52-7
console.log( date2weekdate('2007-12-31') ); // 2008-W01-1
console.log( date2weekdate('2008-01-01') ); // 2008-W01-2

4 PHP[ | ]

$date = '2008-12-31';
$weekdate = date("o-\WW-N", strtotime($date));
echo $weekdate;
# 2009-W01-3
function date2weekdate($date) {
  return date("o-\WW-N", strtotime($date));
}

5 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}