2016-05-04 8 views
0

ich momentjs bin mit mit Daten zu arbeiten, erhalte ich die aktuelle Woche mit:momentjs die Wochentage eines Zieldatum bekommen

var startDate = moment().startOf('isoweek'); 
var endDate = moment().endOf('isoweek'); 
var weekDays = getWeekDays(startDate, endDate); 

, wo die Funktion getWeekDays als Folge implementiert:

function getWeeDays(startDate, endDate) { 
     "use strict"; 

     var days = []; 
     var day = startDate; 

     while (day <= endDate) { 
      days.push(day); 
      day = day.clone().add(1, 'd'); 
     } 

     return days; 
    } 

Das funktioniert ziemlich gut, aber jetzt muss ich die Tage nicht der aktuellen Woche, sondern der Woche eines Zieldatums bekommen. Zum Beispiel müssen die Benutzereingabe mir das Datum 24/05/2016 und ich von Montag, 23. Mai 2016 bis Sonntag, 29. Mai 2016.

haben Start-te Tagen werde ich versucht:

var startDate = moment().startOf('isoweek').year(year).month(month).day(day); 
var endDate = moment().endOf('isoweek').year(year).month(month).day(day); 
var weekDays = getWeekDays(startDate, endDate); 

, wo die Variable Jahr, Monat und Tag sind in diesem Beispiel gleich: 2016, 05, 24. Dies funktioniert nicht. Haben Sie irgendwelche Vorschläge mit momentjs oder wie Sie es tun, ohne momentjs zu verwenden?


UPDATE

Ok gelöst ich es selbst! Sorry für die Frage gestellt, ich die Lösung hier setzen (Prüfen Sie zuerst das Datum gültig!):

if(moment(year + "/" + month + "/" + day, "YYYY/MM/DD", true).isValid()){ 
    var startDate = moment(year + "/" + month + "/" + day, "YYYY/MM/DD").startOf('isoweek'); 
    var endDate = moment(year + "/" + month + "/" + day, "YYYY/MM/DD").endOf('isoweek'); 
    var weekDays = getWeekDays(startDate, endDate); 
} 
+1

Sie können die Frage selbst beantworten. Lesen Sie: [Selbstantwort] (http://stackoverflow.com/help/self-answer) –

+0

Vielen Dank für den Hinweis. – Andrea

Antwort

0

Das ist, was ich das Problem zu lösen hat:

if(moment(year + "/" + month + "/" + day, "YYYY/MM/DD", true).isValid()){ 
    var startDate = moment(year + "/" + month + "/" + day, "YYYY/MM/DD").startOf('isoweek'); 
    var endDate = moment(year + "/" + month + "/" + day, "YYYY/MM/DD").endOf('isoweek'); 
    var weekDays = getWeekDays(startDate, endDate); 
} 

function getWeeDays(startDate, endDate) { 
    "use strict"; 

    var days = []; 
    var day = startDate; 

    while (day <= endDate) { 
     days.push(day); 
     day = day.clone().add(1, 'd'); 
    } 

    return days; 
} 
0
`moment(anyValidDate).day()` 
// will return you the index of the day of given date. 
//i.e. 0 for Sunday, 1 for Monday and so on till 6 for Saturday. list of week days. 

new Date().getDay() // will give same result as above. 

nächste du weißt was zu tun ist.