JSFiddle - React, Tailwind, and code Playground
by Jay Scott. ANDERSON
HTML
<div id="buttons_week">
<button>+1 Week</button>
<button>-1 Week</button>
</div>
<div id="calendar"></div>
JavaScript
var calendar = document.getElementById('calendar');
Array.prototype.forEach.call(document.querySelectorAll('#buttons_week button'), function (elem) {
elem.addEventListener('click', function (evt) {
var calendar_obj = week_increment(evt.target.innerHTML)
console.log(calendar_obj.days)
console.log(calendar_obj.dayMonth)
calendar.innerHTML =
calendar_obj.weekNum + '/' +
calendar_obj.mName + '/' +
calendar_obj.yearNum
})
})
function week_increment(mod) {
var dd = new Date()
var week_inc = 7 * 24 * 60 * 60 * 1000
if ( 0 === mod.indexOf('-') ) { week_inc *= -1 } // decrement week
dd = new Date(dd.getTime() + week_inc)
dd.setHours(0,0,0);
var dayMonth = [], days = [], weekNum
dd.setHours(-24 * ((dd.getDay() || 7) - 1))
for ( ii = 0; ii < 7; dd.setHours(24), ii++ ) {
days.push(dd.getDate())
dayMonth.push(dd.getMonth()+1)
if ( 3 === ii ) { // get weekNum on Thursday ??
weekNum = Math.ceil((((dd-new Date(dd.getFullYear(),0,1))/8.64e7)+1)/7) // http://stackoverflow.com/a/18005464/2743458
}
}
return {
'dayMonth': dayMonth,
'days': days,
'weekNum': weekNum,
'mName': months[dd.getMonth()],
'yearNum': dd.getFullYear()
}
}
var months = ['Januari','Februari','Mars','April','Maj','Juni','Juli','Augusti','September','Oktober','November','December'];