JSFiddle - React, Tailwind, and code Playground

HTML

<input id="youtube-timestamp" value="2013-08-18T04:46:18.000Z" />
<input type="button" value="show difference from today" onClick="showDiff()" />
<br/>
<div id="diffDisplay"></div>

JavaScript

function getDateDiff(timestamp) {
    if (null === timestamp || timestamp === "" || timestamp === "undefined") return "?";
    var splitDate = ((timestamp.toString().split('T'))[0]).split('-');
    var splitTime = ((timestamp.toString().split('T'))[1]).split(':');
    var d1 = new Date();
    var d1Y = d1.getFullYear();
    var d2Y = parseInt(splitDate[0], 10);
    var d1M = d1.getMonth() + 1;
    var d2M = parseInt(splitDate[1], 10);
    var d1D = d1.getDate();
    var d2D = parseInt(splitDate[2], 10);
    var d1H = d1.getHours();
    var d2H = parseInt(splitTime[0], 10);
	var d1T = d1.getMinutes();
	var d2T = parseInt(splitTime[1], 10);
    var diffInMinutes = (d1T + 59 * d1H + 23) - (d2T + 59 * d2H + 23);
    if (diffInMinutes <= 1) return "1 Minute";
    else if (diffInMinutes <= 59) return diffInMinutes + " Minutes";
	var diffInHours = (d1H + 23 * d1M) - (d2H + 23 * d1M);
    if (diffInHours <= 1) return "1 Hour";
    else if (diffInHours < 23) return diffInHours + " Hours";
    var diffInDays = (d1D + 30 * d1M + 12 * d1Y) - (d2D + 30 * d2M + 12 * d2Y);
    if (diffInDays < 7) return diffInDays + " days";
    else if (diffInDays > 7 && diffInDays < 14) return "1 week";
    else if (diffInDays >= 14 && diffInDays < 30) return Math.floor(diffInDays / 7) + " weeks";
    var diffInMonths = (d1M + 12 * d1Y) - (d2M + 12 * d2Y);
    if (diffInMonths <= 1) return "1 month";
    else if (diffInMonths < 12) return diffInMonths + " months";
    var diffInYears = Math.floor(diffInMonths / 12);
    if (diffInYears <= 1) return "1 year";
    else if (diffInYears < 12) return diffInYears + " years";
}
showDiff = function () {
    $("#diffDisplay").html(getDateDiff($("#youtube-timestamp").val()));
};