JSFiddle - React, Tailwind, and code Playground
by spechackers
JavaScript
var one_day = 1000 * 60 * 60 * 24
var one_month = 1000 * 60 * 60 * 24 * 30
var one_year = 1000 * 60 * 60 * 24 * 30 * 12
function displayage(yr, mon, day, unit, decimal, round) {
today = new Date()
var pastdate = new Date(yr, mon - 1, day)
var countunit = unit
var decimals = decimal
var rounding = round
finalunit = (countunit == "days") ? one_day : (countunit == "months") ? one_month : one_year
decimals = (decimals <= 0) ? 1 : decimals * 10
if (unit != "years") {
if (rounding == "rounddown") document.write(Math.floor((today.getTime() - pastdate.getTime()) / (finalunit) * decimals) / decimals + " " + countunit)
else document.write(Math.ceil((today.getTime() - pastdate.getTime()) / (finalunit) * decimals) / decimals + " " + countunit)
} else {
yearspast = today.getFullYear() - yr - 1
tail = (today.getMonth() > mon - 1 || today.getMonth() == mon - 1 && today.getDate() >= day) ? 1 : 0
pastdate.setFullYear(today.getFullYear())
pastdate2 = new Date(today.getFullYear() - 1, mon - 1, day)
tail = (tail == 1) ? tail + Math.floor((today.getTime() - pastdate.getTime()) / (finalunit) * decimals) / decimals : Math.floor((today.getTime() - pastdate2.getTime()) / (finalunit) * decimals) / decimals
document.write(yearspast + tail + " " + countunit)
}
}
var dateObj = new Date("11/20/2010");
//document.write(dateObj);
//document.write(dateObj.getDate());
//document.write(dateObj.getMonth() + 1);
//document.write(dateObj.getFullYear());
var one_day = 1000 * 60 * 60 * 24
var one_month = 1000 * 60 * 60 * 24 * 30
var one_year = 1000 * 60 * 60 * 24 * 30 * 12
var date1_ms = new Date().getTime()
var date2_ms = dateObj.getTime()
var difference_ms = Math.abs(date1_ms - date2_ms)
var yearDate = difference_ms / one_day;
...