<div id="container">
<div id="days-due" class="float-left margin-bottom">
<p class="float-left margin-right">
Indicator will turn yellow if within # days from due date
</p>
<input id="days" type="number" name="days" min="1" max="30" class="float-left padding-left padding-right">
<p class="float-left padding-left">
Enter a value from 1-30 only
</p>
</div>
<div id="display-container">
<div class="float-left margin-right">
KPI
<br>
<div id="kpi">
</div>
</div>
<div class="float-left">
Due Date
<br>
<input id="date" type="date" name="dueDate">
</div>
<div class="float-left margin-left">
Status
<br>
<p id="status-message">
When is it due?
</p>
</div>
</div>
<input id="submit" type="submit">
</div>
// find elements
//var submit = $("#submit")
var submit = document.getElementById("submit")
// handle click and add class
// submit.on("click", function(){
// CheckKpi()
//})
submit.onclick = CheckKpi;
function CheckKpi() {
//var days = $("#days").val();
var days = document.getElementById("days").value;
days = parseInt(days, 10);
//var date = $("#date").val();
var date = document.getElementById("date").value
var array = date.split("-");
var dateObj = new Date(array[0], array[1] - 1, array[2]); //-1 because months are 0-11
var today = new Date();
var diff = dateDiff(today, dateObj);
//$("#kpi").removeClass();
var kpiElement = document.getElementById("kpi");
kpi.className = "";
var statusElement = document.getElementById("status-message");
if (diff > days) {
var greenmsg = "Your task is due in " + diff + " days";
//$("#kpi").addClass("dot");
kpiElement.classList.add("dot");
//$("#status-message").html(greenmsg)
statusElement.innerHTML = greenmsg;
} else if (diff <= days && diff >= 0) {
var yellowmsg = "You have " + diff + " dates before due";
//$("#kpi").addClass("arrow-up");
kpiElement.classList.add("arrow-up");
//$("#status-message").html(yellowmsg);
statusElement.innerHTML = yellowmsg;
} else if (diff < 0) {
var redmsg = "You are " + Math.abs(diff) + " days late";
//$("#kpi").addClass("square");
kpiElement.classList.add("square");
//$("#status-message").html(redmsg);
statusElement.innerHTML = redmsg;
}
}
function dateDiff(date1, date2) {
var one_day = 1000 * 60 * 60 * 24; // Convert both dates to milliseconds
var date1_ms = date1.getTime();
var date2_ms = date2.getTime(); // Calculate the difference in milliseconds
var difference_ms = date2_ms - date1_ms; // Convert back to days and return
var difference_day = difference_ms / one_day;
return Math.round(difference_ms / one_day);
}
Please Whitelist JSFiddle in your content blocker.
Help keep JSFiddle free for always by one of two ways:
Whitelist JSFiddle in your content blocker (two clicks)
Go PRO and get access to additional PRO features →
Join the 4+ million users, and keep the JSFiddle dream alive.
Ad-free
All ads in the editor and listing pages are turned completely off.
Use pre-released features
You get to try and use features (like the Palette Color Generator) months before everyone else.
Fiddle collections
Sort and categorize your Fiddles into multiple collections.
Private collections and fiddles
You can make as many Private Fiddles, and Private Collections as you wish!
Console
Debug your Fiddle with a minimal built-in JavaScript console.