JSFiddle - React, Tailwind, and code Playground

by robgallen

HTML

<script src="https://rawgit.com/moment/moment/develop/min/moment-with-locales.min.js"></script>
<script src="https://rawgit.com/robgallen/moment-fquarter/master/moment-fquarter.min.js"></script>
<div id="output">

</div>

JavaScript

var m = moment("2017-07-03");
var q = m.fquarter(); // Q2 2017/19
var currentQuarter = q.quarter;

function logit(msg) {
	var output = document.getElementById("output");
  output.innerHTML += msg + "<br/>";
}

logit("Date now: " + m.format("L"));

// work out next quarter, got to be sometime in the next 3 months
for (var i = 1; i <= 3; i++) {
	var increment = m.clone().add(i, "months"); // do not affect the original moment
	var incrementQuarter = increment.fquarter();
  if (incrementQuarter.quarter !== currentQuarter) {
  	logit("Next quarter: " + incrementQuarter.toString());
    
    // pare down the date to the minimum 
    var soonestDate = { y: increment.year(), M: increment.month(), d: 1 };
    var soonestMoment = moment(soonestDate);
    logit("Soonest date: " + soonestMoment.format("L"));
    
    // what's the difference?
    var difference = soonestMoment.diff(m, 'days');
    logit("Next quarter in " + difference + " days");
    break;
  }
}