2

假设说 2013 年和 38 年(38 = 一年中的第 38 周),我想得到 2013-09-16。有 Javascript 或 jQuery 函数吗?

注意:一年中的一周基于 ISO 工作日日历。即给定2014和1,我需要得到2013-12-30

4

3 回答 3

2

使用此处的答案Get friday from week number and year in javascript你会得到你的例外答案

var w2date = function(year, wn){
    var Day10 = new Date( year,0,10,12,0,0),
        Day4 = new Date( year,0,4,12,0,0),
        weekmSec = Day4.getTime() - Day10.getDay() * 86400000;  // 7 days in milli sec 
    return new Date(weekmSec + ((wn - 1)  * 7 ) * 86400000);   
};

w2date(year, week);

计算给定周数 ( ) 的总毫秒数weekmSec + ((wn - 1) * 7 ) * 86400000,然后将其传递给 Date 对象将为您提供预期的答案

于 2013-09-11T04:54:56.640 回答
1

使用像momentjs这样的库

var year = 2013, weeks = 38;
var m = moment("01-01-" + year, "DD-MM-YYYY");
m.add('weeks', weeks - 1)
console.log(m.toDate())

演示:小提琴

使用js

var year = 2013, weeks = 38;
var d = new Date(year, 0, 1);
d.setDate((weeks - 1) * 7)

演示:小提琴

于 2013-09-11T04:47:15.200 回答
1

试试这段代码:

var d = new Date("January 1, 2013 00:00:00");
d.setDate(259);
alert(d);

259 代表 37 周 * 7。

希望这可以帮助

于 2013-09-11T04:49:50.133 回答