(function() { // in milliseconds var now = Date.now(); var oneday = 1000*60*60*24; var mapTo = function(iRange, oRange, iPoint) { var pct = (iPoint - iRange[0])/(iRange[1]-iRange[0]); if (pct < 0) { pct = 0; } else if (pct > 1) { pct = 1; } var oPoint = oRange[0] + (pct * (oRange[1]-oRange[0])); return oPoint; } var rgb = function(r, g, b) { return "rgb(" + Math.trunc(r) + "," + Math.trunc(g) + "," + Math.trunc(b) + ")"; }; var date2color = function(t) { var max = 0xF3; var red = mapTo([now-oneday, now-(oneday/2)], [max, 0], t); var green = mapTo([now-(oneday/2), now], [0, max], t); return rgb(max-green, max-red, max-green-red); }; var main = function() { document.querySelectorAll('time.colordate').forEach(function(time) { time.style.backgroundColor = date2color(Date.parse(time.dateTime)); }); }; document.addEventListener("DOMContentLoaded", main, false); })();