Для цвета нужны значения трёх компонентов от 0 до 255 в десятичной системе, или от 00 до FF в шестнадцатиричной. С 16-ричной не обязательно связываться.
body {
background-color: rgb(123, 45, 67);
}
или динамически
var R = 123, G = 45, B = 67;
document.body.style.backgroundColor = `rgb(${R}, ${G}, ${B})`;
Часы меняются от 0 до 23, минуты и секунды – от 0 до 60.
Надо «спроецировать» каждое из них на диапазон 0..255.
Например, часы:
var D = new Date();
var hours = D.getHours(); // 0..23
var RR = Math.floor(255 * hours / 23); // 0 .. 255
// то же с шестнадцатиричностью
var RR = Math.floor(255 * hours / 23).toString(16); // 0..FF
// может быть 1 или 2 цифры, надо всегда 2
RR = ('0' + RR).substr(-2); // дописываем в начале 0 и берем последние две цифры
Цвет будет меняться каждую секунду. Вроде бы, цель достигнута. Но хорошо бы придумать, как это сделать интереснее. Чтобы цвет менялся по кругу плавно, без резкого скачка в полночь. И больше напоминал цвет неба в это время суток.