私はこの小さなコードを(多くのSOスレッドの助けを借りて)ビルドしていますが、それは過去2年間でうまくいきましたが、2018年に最初の週を誤って解釈します。JS今日のうち
function getDateOutWeek(week, year, lastDay) {
var d = new Date(year, 0, 1 + (week) * 7);
var day = d.getDay();
var firstDay = d.getDate() - day + (day === 0 ? -6 : 1); // adjust when day is sunday
if (!lastDay) {
alert(new Date(d.setDate(firstDay)).toDateString());
} else {
alert(new Date(d.setDate(firstDay + 6)).toDateString());
}
}
getDateOutWeek("1", "2018");
これは、2018年8月1日を返しますが、2018年1月1日を返す必要があります。 そこの最初の行に既に発生していますcalculate 1 + (week) * 7 = 8
。私はここで正しい値を得る方法を理解できません。
正常に動作しますか? 2018年1月8日は、出力が言うように、月曜日です。あなたは何を見たいですか? –
それは2018年1月1日であるべきです。原因1月8,2018は第2週です – Doomenik
なぜ '1 +(week)'ですか? – Nemani