尝试使用date.js根据“第4周2013”​​返回javascript日期

时间:2013-06-01 10:19:54

标签: javascript date datejs isodate

我正在尝试从一周的数字中计算日期(日期将是从[日期]开始的一周)。

它适用于date.js website的主页(见图片),但我无法让它工作。

date.js website works

我正在使用var date = Date.parse('week 5 2013');,但这总是会返回今天的日期。

我做错了什么?

谢谢, 安格斯

1 个答案:

答案 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 * /