Skip to content

Instantly share code, notes, and snippets.

@fraserxu
Created February 28, 2015 10:19
Show Gist options
  • Save fraserxu/7441be84e1875dd9886a to your computer and use it in GitHub Desktop.
Save fraserxu/7441be84e1875dd9886a to your computer and use it in GitHub Desktop.
date add
function dateAdd(date, interval, units) {
var ret = new Date(date); //don't change original date
switch(interval.toLowerCase()) {
case 'year' : ret.setFullYear(ret.getFullYear() + units); break;
case 'quarter': ret.setMonth(ret.getMonth() + 3*units); break;
case 'month' : ret.setMonth(ret.getMonth() + units); break;
case 'week' : ret.setDate(ret.getDate() + 7*units); break;
case 'day' : ret.setDate(ret.getDate() + units); break;
case 'hour' : ret.setTime(ret.getTime() + units*3600000); break;
case 'minute' : ret.setTime(ret.getTime() + units*60000); break;
case 'second' : ret.setTime(ret.getTime() + units*1000); break;
default : ret = undefined; break;
}
return ret;
}
d = new Date();
out('start: ' + d);
out('+1 year: ' + dateAdd(d, 'YEAR', 1));
out('+1 quarter: ' + dateAdd(d, 'QUARTER', 1));
out('+1 month: ' + dateAdd(d, 'MONTH', 1));
out('+1 week: ' + dateAdd(d, 'week', 1));
out('+1 day: ' + dateAdd(d, 'day', 1));
out('+1 hour: ' + dateAdd(d, 'hour', 1));
out('+1 minute: ' + dateAdd(d, 'minute', 1));
out('+1 second: ' + dateAdd(d, 'second', 1));
out('+1 garbage: ' + dateAdd(d, 'garbage', 1));
function out(s) {
document.getElementById('output').innerHTML += s + '<br/>';
}
@fraserxu
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment