Reputation: 14088
Hello I need to define existing days in some date range. I don't wont to make loop from start to end dates and use like here http://www.w3schools.com/jsref/jsref_getday.asp Is it possible to calculate it some how ?
Upvotes: 1
Views: 699
Reputation: 8503
function getDays(earlierDate, laterDate) {
var dayNames = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
var elapsedDays = (laterDate - earlierDate) / 1000 / 60 / 60 / 24;
if (elapsedDays < 7) {
var dayArray = [];
for (i = 0; i <= elapsedDays; i++) {
dayArray.push(dayNames[(earlierDate.getDay()+i) % 7]);
}
return dayArray;
}
return dayNames;
}
And testing in the js console:
> getDays(new Date("03-01-2012"), new Date("03-01-2012"));
["Thursday"]
> getDays(new Date("03-01-2012"), new Date("03-05-2012"));
["Thursday", "Friday", "Saturday", "Sunday", "Monday"]
> getDays(new Date("03-01-2012"), new Date("03-05-2013"));
["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
Upvotes: 3
Reputation: 14088
var sevenDaysInMS = 604800000;
if (new Date(dTo - dFrom).getTime() >= sevenDaysInMS) {
$('.day_hid').attr(attrUnaviableDay, "true");
} else {
var dt = dFrom;
do {
var day = dt.getDay();
ActivateDaySelector(day);
dt.setDate(dt.getDate() + 1);
} while (dt <= dTo);
}
I think it is ok. What do you think ?
Upvotes: 0