Holen Sie sich das nächste Datum vom Wochentag in JavaScript
Lesezeit: 4 Minuten
Ruslan
Wie kann man zum nächsten zurückkehren Datum eines bestimmten Wochentags (es kann entweder eine Zahl von 0-6 oder die Namen Sonntag-Samstag sein).
Beispiel, wenn heute, am Freitag, 16. Oktober 2009 Ich ging hinein:
Freitagwürde es das heutige Datum zurückgeben 16. Okt. 2009
Samstag kehrt zurück 17. Okt. 2009
Donnerstag kehrt zurück 22. Oktober 2009
@Josh Stodola: Ich habe nicht abgelehnt, weil ich dem Benutzer gerne die Möglichkeit gebe, das Problem zuerst zu beheben. Ich habe viele Fragen/Antworten abgelehnt, 1 Punkt ist nichts. Ich habe ihn gebeten, die Frage umzuformulieren, und wenn er das tut, wäre die Ablehnung unnötig.
– Andi E
16. Oktober 2009 um 16:35 Uhr
Ich persönlich bevorzuge schlecht formulierte Fragen gegenüber unhöflichen Usern.
– schlüpft
16. Oktober 2009 um 16:41 Uhr
@Andy, @Josh In den FAQ heißt es eindeutig: “Solange Ihre Frage … für mindestens einen anderen Programmierer irgendwo von Interesse ist … ist sie hier willkommen. Keine Frage ist zu trivial oder zu ‘Neuling'”. Dies ist die erste Frage des Fragestellers, geben Sie ihr/ihm etwas Spielraum – niemand schafft es beim ersten Versuch perfekt.
– Brianpeiris
19. Oktober 2009 um 9:00 Uhr
Hey @AndyE , “@slikts”, @”John Stodola”, @”brianpeiris” . Ich hoffe es geht dir gut. Es ist 7,5 Jahre her) Ich bin endlich dazu gekommen, die Frage zu bearbeiten))
– Ruslan
26. April 2017 um 16:03 Uhr
Dies ist eine der unfreundlichsten Seiten für Neuankömmlinge. Ich kämpfe lieber stundenlang mit einem Problem, als hier eine Frage zu stellen.
– EL
16. März 2019 um 15:22 Uhr
Blauharley
Und wenn Sie nicht wollen, übergeben Sie Zahlen, sondern Wochentagsnamen (Sonntag Samstag) um ein zukünftiges Datum eines bestimmten Wochentags zu finden, dann hilft dir auch das:
function getDateOfWeekday(refday){
var days = {
monday: 1,
tuesday: 2,
wednesday: 3,
thursday: 4,
friday: 5,
saturday: 6,
sunday: 0
};
if(!days.hasOwnProperty(refday))throw new Error(refday+" is not listed in "+JSON.stringify(days));
var currDate = new Date();
var currTimestamp = currDate.getTime();
var triggerDay = days[refday];
var dayMillDiff=0;
var dayInMill = 1000*60*60*24;
// add a day to dayMillDiff as long as the desired refday (sunday for instance) is not reached
while(currDate.getDay()!=triggerDay){
dayMillDiff += dayInMill;
currDate = new Date(currDate.getTime()+dayInMill);
}
return new Date(currTimestamp + dayMillDiff);
}
var sunday = getDateOfWeekday("sunday");
document.write("Next Sunday is at: <strong>"+sunday.toLocaleString()+"</strong><br/>");
var thursday = getDateOfWeekday("thursday");
thursday.setHours(0,0,0,0); // set hours/minutes/seconds and millseconds to zero
document.write("Next Thursday is at: <strong>"+thursday.toLocaleString()+"</strong> on midnight<br/>");
var tuesday = getDateOfWeekday("tuesday");
document.write("Next Tuesday is at: <strong>"+tuesday.toLocaleString()+"</strong><br/>");
Die einzige Antwort, die mir geholfen hat. Heute ist Sonntag und nur diese Antwort zeigt das Datum des nächsten Sonntags, andere zeigen das heutige Datum.
– Sergo Kupreisschwili
8. März 2020 um 12:33 Uhr
Hier ist eine leicht modifizierte Version von Tims Antwort, um die spezifische Frage zu beantworten – übergeben Sie ein Datum d und einen gewünschten Wochentag (dow 0-6), geben Sie das Datum zurück
Für diejenigen, die einen Tag der übernächsten Woche oder der darauffolgenden Woche benötigen: Fügen Sie ein Wochenargument hinzu function nextWeekDay(d, dow, w) und fügen Sie dann die Woche zur Berechnung hinzu und entfernen Sie den Modul: returnDate.setDate(d.getDate() + (dow+((w * 7)-d.getDay())));
Für diejenigen, die einen Tag der übernächsten Woche oder der darauffolgenden Woche benötigen: Fügen Sie ein Wochenargument hinzu function nextWeekDay(d, dow, w) und fügen Sie dann die Woche zur Berechnung hinzu und entfernen Sie den Modul: returnDate.setDate(d.getDate() + (dow+((w * 7)-d.getDay())));
– Stackingjasoncooper
8. November 2017 um 16:04 Uhr
Gemeinschaft
Um die Antwort von Benutzer 190106 zu erweitern, sollte dieser Code Ihnen das geben, was Sie wollten:
function getNextDay(day, resetTime){
var days = {
sunday: 0, monday: 1, tuesday: 2,
wednesday: 3, thursday: 4, friday: 5, saturday: 6
};
var dayIndex = days[day.toLowerCase()];
if (dayIndex !== undefined) {
throw new Error('"' + day + '" is not a valid input.');
}
var returnDate = new Date();
var returnDay = returnDate.getDay();
if (dayIndex !== returnDay) {
returnDate.setDate(returnDate.getDate() + (dayIndex + (7 - returnDay)) % 7);
}
if (resetTime) {
returnDate.setHours(0);
returnDate.setMinutes(0);
returnDate.setSeconds(0);
returnDate.setMilliseconds(0);
}
return returnDate;
}
alert(getNextDay('thursday', true));
10098500cookie-checkHolen Sie sich das nächste Datum vom Wochentag in JavaScriptyes
@Josh Stodola: Ich habe nicht abgelehnt, weil ich dem Benutzer gerne die Möglichkeit gebe, das Problem zuerst zu beheben. Ich habe viele Fragen/Antworten abgelehnt, 1 Punkt ist nichts. Ich habe ihn gebeten, die Frage umzuformulieren, und wenn er das tut, wäre die Ablehnung unnötig.
– Andi E
16. Oktober 2009 um 16:35 Uhr
Ich persönlich bevorzuge schlecht formulierte Fragen gegenüber unhöflichen Usern.
– schlüpft
16. Oktober 2009 um 16:41 Uhr
@Andy, @Josh In den FAQ heißt es eindeutig: “Solange Ihre Frage … für mindestens einen anderen Programmierer irgendwo von Interesse ist … ist sie hier willkommen. Keine Frage ist zu trivial oder zu ‘Neuling'”. Dies ist die erste Frage des Fragestellers, geben Sie ihr/ihm etwas Spielraum – niemand schafft es beim ersten Versuch perfekt.
– Brianpeiris
19. Oktober 2009 um 9:00 Uhr
Hey @AndyE , “@slikts”, @”John Stodola”, @”brianpeiris” . Ich hoffe es geht dir gut. Es ist 7,5 Jahre her) Ich bin endlich dazu gekommen, die Frage zu bearbeiten))
– Ruslan
26. April 2017 um 16:03 Uhr
Dies ist eine der unfreundlichsten Seiten für Neuankömmlinge. Ich kämpfe lieber stundenlang mit einem Problem, als hier eine Frage zu stellen.
– EL
16. März 2019 um 15:22 Uhr