Ich habe ein today = new Date();
Objekt. Ich muss den ersten und letzten Tag der aktuellen Woche bekommen. Ich brauche beide Varianten für Sonntag und Montag als Start- und Endtag der Woche. Ich bin jetzt ein bisschen verwirrt mit einem Code. Kannst du mir helfen?
javascript
date
Petja petrov
quelle
quelle
var first = curr.getDate() - curr.getDay() +1;
var lastday = new Date(curr.setDate(first.getDate()+6)).toUTCString();
var curr = new Date('2014-10-01T00:00:00'); // get current date var first = curr.getDate() - curr.getDay(); // First day is the day of the month - the day of the week var last = first + 6; // last day is the first day + 6 firstday = new Date(curr.setDate(first)).toUTCString(); lastday = new Date(curr.setDate(curr.getDate()+6)).toUTCString();
funktionieren. Ich habe nur den Code von @ RichardN korrigiert, der einen kleinen Fehler aufweistSeien Sie vorsichtig mit der akzeptierten Antwort. Sie setzt die Zeit nicht auf 00:00:00 und 23:59:59, sodass Sie Probleme haben können.
Ich empfehle Moment.js zu verwenden, um mit Daten umzugehen. Für Ihren Fall:
Dies ist nur ein kleiner Anwendungsfall. Es ist wirklich einfach, viele komplexe Vorgänge auszuführen.
Weitere Informationen finden Sie hier: http://momentjs.com/
quelle
var startOfWeek = moment().startOf('isoweek').toDate();
var endOfWeek = moment().endOf('isoweek').toDate();
Sie können auch die folgenden Codezeilen verwenden, um das erste und letzte Datum der Woche abzurufen:
Hoffe es wird nützlich sein ..
quelle
Hier ist eine schnelle Möglichkeit, den ersten und letzten Tag für jeden Starttag zu ermitteln. wohl wissend, dass:
1 Tag = 86.400.000 Millisekunden.
JS-Datumswerte sind in Millisekunden angegeben
Rezept: Finden Sie heraus, wie viele Tage Sie entfernen müssen, um den Starttag Ihrer Woche zu erhalten (multiplizieren Sie mit 1 Tag Millisekunden). Danach müssen Sie nur noch 6 Tage hinzufügen, um Ihren Endtag zu erreichen.
quelle
Die ausgezeichnete (und unveränderliche) Datums-FNS-Bibliothek behandelt dies am präzisesten :
quelle
Sie könnten so etwas tun
Wo
startDay
ist eine Zahl von 0 bis 6, wobei 0 für Sonntag steht (dh 1 = Montag, 2 = Dienstag usw.).quelle
SetDate
wird den Tag des Monats festlegen. Die VerwendungsetDate
zu Beginn und am Ende des Monats führt zu einer falschen WocheWenn Sie das Datum auf 01-Jul-2014 einstellen, wird der erste Tag als 29-Jun-2014 und der letzte Tag als 05-Jun-2014 anstelle des 05-Jul-2014 angezeigt
Überwinde also dieses Problem, das ich verwendet habe
quelle
Dies funktioniert über Jahres- und Monatsänderungen hinweg.
quelle
Ich empfehle, Moment.js für solche Fälle zu verwenden. Ich hatte Szenarien, in denen ich die aktuelle Datumszeit, diese Woche, diesen Monat und die Datums- / Uhrzeit dieses Quartals überprüfen musste. Die obige Antwort hat mir geholfen, also dachte ich, ich würde auch die restlichen Funktionen teilen.
Einfach, um das aktuelle Datum und die Uhrzeit in einem bestimmten Format abzurufen
Die Woche beginnt am Sonntag und endet am Samstag, wenn wir einfach 'Woche' als Parameter für die endOf-Funktion verwenden, aber um den Sonntag als Ende der Woche zu erhalten, müssen wir 'isoweek' verwenden.
Ich habe dieses Format nach meinen Wünschen gewählt. Sie können das Format entsprechend Ihren Anforderungen ändern.
quelle
* aktuelles Datum == 30.06.2016 und Montag ist der erste Tag in der Woche.
Es funktioniert auch für verschiedene Monate und Jahre. Getestet mit qunit suite:
quelle
Dies ist für jedes Datumsszenario nützlich.
quelle
krteks Methode hat einige Fehler, ich habe dies getestet
Es klappt
quelle
Obwohl die Frage als veraltet erscheint, muss ich auf ein Problem hinweisen.
Frage: Was wird am 1. Januar 2016 passieren?
Ich denke, die meisten der oben genannten Lösungen berechnen den Wochenbeginn als 27.12.2016. Aus diesem Grund denke ich, dass die korrekte Berechnung einfach wie folgt sein sollte;
quelle
Netter Vorschlag, aber Sie haben am letzten Tag ein kleines Problem. Sie sollten es ändern in:
quelle
Der Momentansatz hat für mich in allen Fällen funktioniert (obwohl ich die Grenzen wie Jahresende, Schaltjahre nicht getestet habe). Nur Korrektur im obigen Code ist der Parameter "isoWeek", wenn Sie die Woche ab Montag beginnen möchten.
quelle
Wenn Sie nur reines Javascript verwenden, können Sie die folgende Funktion verwenden, um den ersten Tag und den letzten Tag einer Woche abzurufen, wobei der Tag für den Wochenbeginn frei eingestellt werden kann.
Der letzte Wochentag ist nur 6 Tage nach dem ersten Wochentag
Prüfung:
quelle
JavaScript
Typoskript
quelle
Wir haben einen Abfragecode hinzugefügt, der die aktuelle Woche der Tage von Montag bis Sonntag anzeigt.
quelle
Eine alte Frage mit vielen Antworten, sodass eine andere kein Problem darstellt. Einige allgemeine Funktionen zum Starten und Beenden aller Arten von Zeiteinheiten.
Für startOf und endOf week ist der Starttag der Woche standardmäßig Sonntag (0), es kann jedoch jeder Tag übergeben werden (Montag - 1, Dienstag - 2 usw.). Verwendet jedoch nur den Gregorianischen Kalender.
Die Funktionen mutieren das Quelldatum nicht, um festzustellen, ob ein Datum in derselben Woche wie ein anderes Datum liegt (Woche ab Montag):
oder in der aktuellen Woche ab Sonntag:
quelle
Kleine Änderung zu @Chris Lang Antwort. Wenn Sie Montag als ersten Tag möchten, verwenden Sie dies.
Thaks @Chris Lang
quelle