JSFiddle - React, Tailwind, and code Playground
by dcdruck
HTML
<div id="output" style="border:1px solid gray;width:400px;min-height:100px;margin:0.5em;padding:0.25em;"></div>
JavaScript
var output = document.getElementById('output');
var dateFormat = 'yyyy/mm/dd';
var date = '2012/07/31';
var y = parseInt(date.replace(/^([0-9]+)\/[0-9]+\/[0-9]+$/, '$1'));
var m = parseInt(date.replace(/^[0-9]+\/([0-9]+)\/[0-9]+$/, '$1'));
var d = parseInt(date.replace(/^[0-9]+\/[0-9]+\/([0-9]+)$/, '$1'));
output.innerHTML = '<p>y=' + y + '<br>m=' + m + '<br>d=' + d + '</p>';
addMonths(2);
function addMonths(numMonths) {
try {
var y = parseInt(date.replace(/^([0-9]+)\/[0-9]+\/[0-9]+$/, '$1'));
var m = parseInt(date.replace(/^[0-9]+\/([0-9]+)\/[0-9]+$/, '$1'));
var d = parseInt(date.replace(/^[0-9]+\/[0-9]+\/([0-9]+)$/, '$1'));
m += numMonths;
if (m > 12) {
y += 1;
m -= 12;
}
switch (m) {
case 2:
if (d > 28) {
m = 3;
d = 1;
}
break;
case 4:
case 6:
case 9:
case 11:
if (d > 30) {
m += 1;
d = 1;
}
break;
}
output.innerHTML += '<p>y=' + y + '<br>m=' + m + '<br>d=' + d + '</p>';
} catch (ex) {
console.log(ex);
}
}