In Javascript, I find it strange how `Date.prototype.getDay()` in defined but `Date.prototype.setDay()`.
So here’s the code for `Date.prototype.setDay()`.
// Sets the Date object to the day of the week.
// @param {Number} - dayIndex must be from 0 - 6, where 0 is sunday.
// @return {Number} returns the primitive value of the Date object.
Date.prototype.setDay = Date.prototype.setDay || function (dayIndex) {
dayIndex = Math.floor(+dayIndex);
if (dayIndex < 0 || 6 < dayIndex) {
throw new Error("Must pass integer between 0-6, where sunday is 0.");
}
this.setDate( this.getDate() + dayIndex - this.getDay() );
return this.valueOf();
}; |
// Sets the Date object to the day of the week.
// @param {Number} - dayIndex must be from 0 - 6, where 0 is sunday.
// @return {Number} returns the primitive value of the Date object.
Date.prototype.setDay = Date.prototype.setDay || function (dayIndex) {
dayIndex = Math.floor(+dayIndex);
if (dayIndex < 0 || 6 < dayIndex) {
throw new Error("Must pass integer between 0-6, where sunday is 0.");
}
this.setDate( this.getDate() + dayIndex - this.getDay() );
return this.valueOf();
};
Demo 1
var a = new Date(Date.parse("Feb 1, 2014"));
a.setDay(0);
console.log(a.toDateString() === "Sun Jan 26 2014" );
a.setDay(6);
console.log(a.toDateString() === "Sat Feb 01 2014" ); |
var a = new Date(Date.parse("Feb 1, 2014"));
a.setDay(0);
console.log(a.toDateString() === "Sun Jan 26 2014" );
a.setDay(6);
console.log(a.toDateString() === "Sat Feb 01 2014" );
Demo 2
// Prings the Monday - Friday for the current day.
var getWeekString = function () {
var days = [],
date = new Date();
for (var i = 1, len = 6; i < len; i++) {
date.setDay(i)
days.push("## " + date.toDateString() );
}
return days;
};
console.log(getWeekString().join("\n\n")); |
// Prings the Monday - Friday for the current day.
var getWeekString = function () {
var days = [],
date = new Date();
for (var i = 1, len = 6; i < len; i++) {
date.setDay(i)
days.push("## " + date.toDateString() );
}
return days;
};
console.log(getWeekString().join("\n\n"));
If you looking for a good Javascript Date library, checkout moment.js.
More info:
MDN Date Object