@Rufix

Как сделать из данного времени код в формате HEX?

Нашел в Youtube видео, где человек делает часы, которые меняют фон с течением времени. Решил повторить это, естественно без подсказок, правда приходиться лезть сюда, вы уж простите (это наверное глупо).
В общем, мне нужно превратить время в шестнадцатиричную систему, чтобы потом использовать это как цвет в формате HEX. Подскажите пожалуйста, как мне это сделать? Например, время сейчас 20:41:26

Если вам вдруг нужен код, то вот
var clock = document.getElementById ('clock');
var color = document.getElementById ('color');


var timer = setInterval (function () {
	var date = new Date ();
	var h    = date.getHours () + '';
	var m	 = date.getMinutes () + '';
	var s    = date.getSeconds () + '';
	if (h.length == 1) {h = '0' + h};
	if (m.length == 1) {m = '0' + m};
	if (s.length == 1) {s = '0' + s};
	clock.innerHTML = h + ':' + m + ':' + s;
}, 1000);
  • Вопрос задан
  • 225 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Для цвета нужны значения трёх компонентов от 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 и берем последние две цифры

Цвет будет меняться каждую секунду. Вроде бы, цель достигнута. Но хорошо бы придумать, как это сделать интереснее. Чтобы цвет менялся по кругу плавно, без резкого скачка в полночь. И больше напоминал цвет неба в это время суток.

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы