Vorausgesetzt, dass die erste Woche des Monats diejenige ist, die den ersten Tag des Monats enthält, gibt die folgende Funktion das Datum des ersten Wochentags zurück, wenn das Jahr, der Monat und die Wochennummer angegeben sind:
/*
Eingabejahr, Monat und Wochennummer ab 1
Gibt den ersten Tag der Woche (Sonntag) zurück, wobei
die erste Woche diejenige ist, die den 1. des Monats enthält
*/
function getFirstDayOfWeek(y, m, w) {
var d = new Date(y, --m);
d.setDate(--w * 7 - d.getDay() + 1);
return d;
}
alert(getFirstDayOfWeek(2011,3, 2)); // So 06. März 2011
Um den Rest der Tage zu erhalten, müssen Sie nur 6 Mal eine Schleife durchlaufen und jedes Mal eins zum Datum hinzufügen, z.B.
function getWeekDates(y, m, w) {
var d = getFirstDayOfWeek(y, m, w)
var week = [new Date(d)];
var i = 6;
while (i--) {
week.push(new Date(d.setDate(d.getDate() + 1)));
}
return week;
}
// Zeige die Woche der Termine
var week = getWeekDates(2011,3, 2);
for (var i=0, iLen=week.length; i
0 Stimmen
Wie definieren Sie die erste Woche des Monats? Ist es die Woche, in der der erste Tag des Monats liegt? In diesem Fall könnte es auch die letzte Woche des Vormonats sein, was verwirrend sein könnte. An vielen Orten ist der erste Tag der Woche der Montag, nicht der Sonntag.
0 Stimmen
@RobG "..der erste Tag der Woche ist Montag, nicht Sonntag.." das stimmt, wenn wir uns auf ISO beziehen. Aber es hängt auch davon ab, in welchem Land du lebst. Die meisten asiatischen Länder beginnen ihren Woche am Sonntag. Ich habe meine Woche am Sonntag angefangen, weil das mein Kunde mir gesagt hat.