Advertisement
Guest User

Untitled

a guest
Nov 21st, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. document.addEventListener('DOMContentLoaded', function() {
  2.  
  3.   var startDate=[2018,11,22,0,0],endDate=[2018,11,26,0,0];
  4.  
  5.   function getServerTime() {
  6.  
  7.     var e = new Date;
  8.     return e.setTime(e.getTime() + offset), e
  9.   }
  10.  
  11.   function getTimeRemaining(e) {
  12.  
  13.     tc = Date.parse(e) - getServerTime(), terminou = !(Date.parse(e) > getServerTime());
  14.  
  15.     var t = Math.floor(tc / 1e3 % 60),
  16.         a = Math.floor(tc / 1e3 / 60 % 60),
  17.         r = Math.floor(tc / 36e5 % 24),
  18.         n = Math.floor(tc / 864e5);
  19.  
  20.     return {
  21.  
  22.         total: tc,
  23.         days: n,
  24.         hours: r,
  25.         minutes: a,
  26.         seconds: t
  27.     }
  28. }
  29.  
  30. function calcOffset() {
  31.  
  32.     request.open("HEAD", "/", !0), request.onload = function() {
  33.  
  34.         function e() {
  35.  
  36.             deadline = Date.parse(deadline_1) - getServerTime() > 0 ? deadline_1 : deadline_2;
  37.  
  38.             for (var e = getTimeRemaining(deadline), t = 0; t < c.length; t++) !c[t].classList.contains("exclude") ? c[t].classList.toggle("hide", terminou) : '';
  39.  
  40.             n.innerHTML = e.days, i.innerHTML = terminou ? "00" : ("0" + e.hours).slice(-2), s.innerHTML = terminou ? "00" : ("0" + e.minutes).slice(-2),
  41.             o.innerHTML = terminou ? "00" : ("0" + e.seconds).slice(-2), l.innerHTML = terminou ? terminouTxt : Date.parse(deadline_1) - getServerTime() > 0 ? iniciaTxt : terminaTxt,
  42.             e.total <= 0 && clearInterval(d)
  43.         }
  44.  
  45.         var t = request.getResponseHeader("Date"),
  46.             a = new Date;
  47.  
  48.         serverTimeMillisGMT = Date.parse(new Date(Date.parse(t)).toUTCString()), localMillisUTC = Date.parse((new Date).toUTCString()), offset = serverTimeMillisGMT - localMillisUTC;
  49.  
  50.         var r = document.getElementById("clockdiv"),
  51.             n = r.querySelector(".days"),
  52.             i = r.querySelector(".hours"),
  53.             s = r.querySelector(".minutes"),
  54.             o = r.querySelector(".seconds"),
  55.             l = r.querySelector(".clockTitle"),
  56.             c = r.getElementsByClassName("clockNumber");
  57.         e();
  58.  
  59.         var d = setInterval(e, 1e3)
  60.     }, request.send()
  61. }
  62.  
  63. startDate[1] = startDate[1] - 1, endDate[1] = endDate[1] - 1;
  64.  
  65. var deadline_1 =
  66.   new Date(Date.UTC(startDate[0], startDate[1], startDate[2], startDate[3], startDate[4], 0)),
  67.     deadline_2 = new Date(Date.UTC(endDate[0], endDate[1], endDate[2], endDate[3], endDate[4], 0)),
  68.     terminou = !1,
  69.     request, tc, offset = 0,
  70.     serverTimeMillisGMT = 0,
  71.     localMillisUTC = 0,
  72.     deadline = new Date;
  73.  
  74.   request = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP");
  75.  
  76.   var iniciaTxt="Inicia em:",terminaTxt="Termina em:",terminouTxt="Terminou em "+deadline_2.toLocaleString("pt-PT",{hour12:!1});
  77.  
  78.   calcOffset();
  79. }, false);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement