Ich habe dieses kleine Stück Code gebaut (mit der Hilfe von vielen SO-Threads), es funktionierte gut in den letzten 2 Jahren, aber im Jahr 2018 interpretiert es die erste Woche falsch.JS Datum außerhalb der Woche
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");
Es 2018.01.08 kehrt aber sollte 2018.01.01 zurück. Das tritt schon in der ersten Zeile dort auf calculate 1 + (week) * 7 = 8
. Ich kann nicht herausfinden, wie man hier den richtigen Wert bekommt.
Was ist mit dem Ausgang falsch? Jan 08, 2018, ist ein Montag, wie die Ausgabe sagt. Was erwartest du zu sehen? –
Es sollte 1. Januar 2018 sein. Ursache Jan 08,2018 ist die zweite Woche – Doomenik
warum '1 + (Woche)'? – Nemani