setTimeout автоматическое обновление раз в минуту и раз в сутки
как исправить функции time и data, чтобы элемент time обновлялся раз в минуту, в 00сек, а элемент data раз в сутки в 00:00:00, если пользователь зашёл на сайт в полночь, дата должна автоматически обновится, без ручной перезагрузки страницы...
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js | скрипт время/дата</title>
<style>
#time,
#data {
font: 40px serif;
}
#time {
color: hsl(140,100%,30%);
}
#data {
color: hsl(120,100%,30%);
}
</style>
</head>
<body>
<span id="time"></span><br>
<span id="data"></span>
<script>
var TimeElems = document.getElementById('time').innerHTML = time();
var DataElems = document.getElementById('data').innerHTML = data();
function two_digit(n) {
var str = "";
if (n <= 9) str = "0";
str = str + n;
return str;
}
function time() {
var t = new Date();
var hours = two_digit(t.getHours());
var min = two_digit(t.getMinutes());
var sec = two_digit(t.getSeconds());
return hours + "<span class='colon'>:</span>" + min;
}
function data() {
var d = new Date();
var days = ["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"];
var day = d.getDate();
// var month = two_digit(d.getMonth()+1);
// var months = ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"];
var months = ["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"];
var year = d.getFullYear();
// return days[d.getDay()] + "<br>" + day + "." + month + "." + year + "г."; // = строка 29
// return days[d.getDay()] + "<br>" + day + " " + months[d.getMonth()]+ " " + year + "г."; // = строка 30
return days[d.getDay()] + "<br>" + day + "." + months[d.getMonth()]+ "." + year + "г."; // = строка 31
}
</script>
</body>
</html>
Источник: Stack Overflow на русском