2017-02-07 1 views
1

In einem Formular, definiere ich ein Startdatum, ein Enddatum und WochentagAnfahrt Tage zwischen Datumsbereich von Javascript oder Jquery

Beispiel:

Start date: 2017-02-07 
End date: 2017-03-07 

Wochentag: Montag und Donnerstag

Jetzt möchte ich alle montags und donnerstags zwischen Startdatum und Enddatum mit Javascript oder jQuery.

Wer kann mir helfen?

Dank ...

+0

@closevoters es gibt nichts, das sagt, dass Benutzer, die How-to Fragen stellen, erforderlich sind, um einzuschließen, was sie bis jetzt versucht haben. Diese Frage ist keine Frage im Debugging-Stil, ist nicht zu weit gefasst und ansonsten klar und am Thema. Bitte beachten Sie: [Nur Debug-Stil-Fragen erfordern explizit Code] (http://meta.stackoverflow.com/a/338846/4639281) –

Antwort

1

Einfache Code. Codepen

var startDate = new Date('2017-02-07'); 
var endDate = new Date('2017-02-17'); 
var monday = []; 
var thursday = []; 
for (var d = new Date(startDate); d <= new Date(endDate); d.setDate(d.getDate() + 1)) { 
    if(d.getDay()==1) 
     monday.push(d); 
    else if(d.getDay()==4) 
     thursday.push(d); 
} 
0

Sie können Datum analysieren und iterieren Schritt 1 Tag und getDay mit Sonne zur Karte (0) bis sat (6)

var startDate = new Date("2017-02-07"); 
 
var endDate = new Date("2017-03-07"); 
 
var totalMon = []; 
 
var totalThu = []; 
 

 
for (var i = startDate; i <= endDate;){ 
 
    if (i.getDay() == 1){ 
 
     totalMon.push(i.getFullYear() + "-" + (i.getMonth()+1) + "-" + i.getDate()); 
 
    } 
 
    if (i.getDay() == 4){ 
 
     totalThu.push(i.getFullYear() + "-" + (i.getMonth()+1) + "-" + i.getDate()); 
 
    } 
 
    i.setTime(i.getTime() + 1000*60*60*24); 
 
} 
 

 
console.log(totalMon.length ,totalMon); 
 
console.log(totalThu.length ,totalThu);

0

Im Folgenden Code findet Anzahl von montags. Sie können es ändern, um jeden Tag zu berechnen. Es findet im Grunde die Differenz von Tagen in zwei Daten. Teilen Sie es durch 7 (das ist die Anzahl der täglichen kommen wird). Blättern Sie nun für anstehende Tage durch die Daten und prüfen Sie, ob in dieser Schleife ein gewünschter Tag liegt.

var startDate = new Date(2017, 02, 07); 
var endDate = new Date(2017, 03, 07); 
var dayDiff = Math.round((endDate-startDate)/(1000*60*60*24)); 
var numberOfMondays = Math.floor(dayDiff/7); 
var remainingDays = dayDiff%7; 
for(i=0;i<remainingDays;i++) 
{ 
    var dateObj = new Date(); 
    dateObj.setDate(endDate.getDate() - i); 
    if(dateObj.getDay() == 2) 
    numberOfMondays=numberOfMondays+1; 
} 
alert(numberOfMondays); 

PS: die anderen beiden Antworten durchlaufen alle Daten. Ich werde das nicht vorschlagen. Im obigen Code wird die Anzahl der Iterationen in der Schleife niemals 6 überschreiten, unabhängig von der Differenz der Daten.

Verwandte Themen