Calendar
configurable calendar
by aubz88
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment-with-locales.min.js"></script>
JavaScript
var data = {};
data.weeks = {};
data.currentCalendarMonth = moment().startOf('month');
buildMonth();
printMonth();
function buildMonth() {
data.weeks = {};
var startOfMonthISOWeek = data.currentCalendarMonth.clone().startOf('month').isoWeek();
var endOfMonthISOWeek = data.currentCalendarMonth.clone().endOf('month').isoWeek();
for (var i = startOfMonthISOWeek; i < endOfMonthISOWeek + 1; i++) {
data.weeks[i] = [];
buildWeek(i);
}
}
function buildWeek(isoWeekNumber) {
var start = moment().year(data.currentCalendarMonth.get('year')).week(isoWeekNumber).startOf('isoweek');
var firstDayOfTheWeek = start.clone().subtract(3, 'days');
for (var i = 0; i < 7; i++) {
var day = firstDayOfTheWeek.clone().startOf('day').add(i, 'days');
data.weeks[isoWeekNumber].push({
date: day.get('date'),
month: day.get('month'),
year: day.get('year'),
day: day
});
}
}
function printMonth() {
for(var key in data.weeks) {
var week = '';
for (var j = 0; j < 7; j++) {
week += data.weeks[key][j].date + ' ';
}
document.write(week);
document.write('<br />');
}
}