Moment date calcs
shortcut date spans for various reporting needs
by bryangrimes
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.0/moment.min.js"></script>
JavaScript
console.clear();
// moment mutations are an abhoration.
// all the dates are just for sample creation...
console.log('P180D');
var p_180_d_from = moment();
var p_180_d_to = moment();
var duration = 180;
console.log(p_180_d_from.add(-duration, 'day').startOf('day').format(), p_180_d_to.endOf('day').format());
console.log('P6M');
var p_6_m_from = moment();
var p_6_m_to = moment();
var duration = 6;
console.log(p_6_m_from.add(-duration-1, 'month').startOf('month').format(), p_6_m_to.endOf('day').format());
console.log('month_to_date');
var month_to_date = moment();
console.log(month_to_date.startOf('month').format(), month_to_date.format());
console.log('quarter_to_date');
var quarter_to_date = moment();
console.log(quarter_to_date.startOf('quarter').format(), moment().format());
console.log('year_to_date');
var year_to_date = moment();
console.log(year_to_date.startOf('year').format(), moment().format());
console.log('previous_month');
var previous_month = moment();
var previous_month_end = moment();
console.log(previous_month.add(-1, 'month').startOf('month').format(), previous_month_end.add(-1, 'month').endOf('month').format());
console.log('previous_three_months');
var previous_three_months = moment();
var previous_three_months_end = moment();
console.log(previous_three_months.add(-3, 'month').startOf('month').format(), previous_three_months_end.add(-1, 'month').endOf('month').format());
console.log('previous_six_months');
var previous_six_months = moment();
var previous_six_months_end = moment();
console.log(previous_six_months.add(-6, 'month').startOf('month').format(), previous_six_months_end.add(-1, 'month').endOf('month').format());
console.log('previous_twelve_months');
var previous_twelve_months = moment();
var previous_twelve_months_end = moment();
console.log(previous_twelve_months.add(-12, 'month').startOf('month').format(), previous_twelve_months_end.add(-1, 'month').endOf('month').format());
console.log('previous_quarter');
var...