2

2013 と 38 (38 = 年の第 38 週) を考えると、2013-09-16 を取得したいと考えています。Javascript または jQuery 関数はありますか?

注: 年の週は、ISO 曜日カレンダーに基づいています。つまり、2014 と 1 が与えられた場合、2013-12-30 を取得する必要があります

4

3 に答える 3

2

ここからの回答を使用すると、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

次のコード スニペットを試してください。

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

259 は 37 週 * 7 を表します。

お役に立てれば

于 2013-09-11T04:49:50.133 に答える
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 に答える