我正在尝试从一周的数字中计算日期(日期将是从[日期]开始的一周)。
它适用于date.js website的主页(见图片),但我无法让它工作。
我正在使用var date = Date.parse('week 5 2013');
,但这总是会返回今天的日期。
我做错了什么?
谢谢, 安格斯
答案 0 :(得分:0)
如果你不喜欢date.js,计算一年的第n周非常简单 -
一年的第一周从该年的第一个星期一开始,
如果第一周包括星期四。
否则一年的第一周(如2013年)
从上一个年的最后一个星期一开始。
function nthWeek(y, n){
if(y== undefined) y= new Date().getFullYear();
var start= new Date(y, 0, 1);
if(start.getDay()>4) start.setDate(start.getDate()+7);
while(start.getDay()!= 1) start.setDate(start.getDate()-1);
if(!n || n== 1) return start;
start.setDate(start.getDate()+((n-1)*7));
return start;
}
var s='week 4 2013';
var m=s.match(/(\d+)/g);
alert(nthWeek(m[1],m[0]));
/ *返回值:(日期) 2013年1月21日星期一00:00:00 * /