JSFiddle - React, Tailwind, and code Playground
by whelkaholism
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.30.1/moment.min.js"></script>
<div id="t">
</div>
JavaScript
function getAgeOnSep1(dobstring, o)
{
var dob = moment(dobstring);
var now = new Date();
var sep1 =new Date(now.getUTCFullYear(), 7, 31);
//(now < sep1) && sep1.setUTCFullYear(sep1.getUTCFullYear() - 1);
o && (o.d = moment(sep1));
return moment(sep1).diff(dob, 'years');
};
function getSide(age)
{
var side;
for(side = 7; side <= 17; side++)
{
if(side >= age)
break;
}
return side < 18 ? 'U' + side : 'ADULT';
};
[
'2010-10-23',
'2015-08-31',
'2015-09-01',
'2015-09-02',
'2010-01-13',
].forEach(function(dob)
{
var o = {};
var age = getAgeOnSep1(dob, o);
var s = moment(dob).format('Do MMM YYYY') + ' (' + age + 'y/o on ' + o.d.format('Do MMM YYYY')+ ') = ' + getSide(age);
document.getElementById('t').innerHTML += s + '<br/>';
});