Refactoring digital clock - JavaScript ES5 Functional Programming
You have almost everything in a single function, displayTime.

I'd start by refactoring the date-to-string manipulations into separate functions and leaving only DOM manipulation code in displayTime:

// qs :: String -&gt; Element
// formatTime :: Date -&gt; String
// formatYearMonth :: Date -&gt; String
function displayTime() {
  let date = new Date();
  // handle weekdays here
  qs('.clock-time').textContent = formatTime(date);
  qs('.clock-date').textContent = formatYearMonth(date);
}


formatTime would be more readable IMO if we named your checkTime function zeroPad and used mm/ss for double-digit strings:

function formatTime(date) {
  let zeroPad = (i) =&gt; ((i &lt; 10) ? "0" : "") + i; // I know you said no arrow functions, but I can't resist

  let h = date.getHours();
  let mm = zeroPad(date.getMinutes());
  let ss = zeroPad(date.getSeconds());
  return `${h}:${mm}:${ss}`;
}


The weekday indicators can be created once and only get updated as necessary. This makes it obvious what part is dynamic:

let weekdayLIs = Array.from(qs('.clock-weekdays').children);
// I'm no fond of using the index here, can be changed to inspect the &lt;li&gt;
function isCurrentWeekday(idx) { return idx === date.getDay(); }

weekdayLIs.forEach((li, idx) =&gt; {
  li.classList.toggle('active', isCurrentWeekday(idx));
});


I'm not sure what's the point of displaying the current weekday in two places, but if you insist:

qs('.clock-day').textContent = weekdayLIs.find((li,idx) =&gt; isCurrentWeekday(idx)).textContent;


As for creating the &lt;li&gt;s corresponding to the weekdays, you can simply list them in HTML; this has the benefit of having all the structure defined in one place:

  &lt;ul class="clock-weekdays"&gt;
    &lt;li&gt;Sun&lt;/li&gt;&lt;li&gt;Mon&lt;/li&gt;&lt;li&gt;Tue&lt;/li&gt;&lt;li&gt;Wed&lt;/li&gt;&lt;li&gt;Thu&lt;/li&gt;&lt;li&gt;Fri&lt;/li&gt;&lt;li&gt;Sat&lt;/li&gt;
  &lt;/ul&gt;


https://codepen.io/anon/pen/zpyRjm?editors=1010