Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   обновлять элемент раз в сутки (https://javascript.ru/forum/misc/81084-obnovlyat-ehlement-raz-v-sutki.html)

Блондинка 26.09.2020 23:33

обновлять элемент раз в сутки
 
Есть такой скрипт

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
<body>
<style>
#clock { overflow: hidden; }
#clock .date { clear: left; text-align: center; width: 100px; }
#clock .date .data .digit {
    border: 1px solid #0000FF;
    float: left;
    width: 26px;
    font-size: 200%;
    text-align: center;
    margin: 0 1.5px;
}
#clock .date .digit {
    border: 1px inset #00FF00;
    margin: 0 1px;
}
</style>
<span id="clock"></span>
<script>
function clock() {
    setTimeout(clock, 500);
    var date = new Date();
    var day = date.getDate();
    var month = date.getMonth();
    var year = date.getFullYear();
    var weekday = date.getDay();
    var months = ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"];
    var dayNames = ["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"];
 
    function numberWrapInSpan(num) {
        num = String(num);
        if(num.length === 1) num = "0" + num;
        for (var i = 0, html = ""; i < num.length; i++) html += "<span class=\"digit\">" + num.charAt(i) + "</span>";
        return html;
    }
    day = numberWrapInSpan(day), year = numberWrapInSpan(year);
    document.getElementById("clock").innerHTML = "<div class='date'>"+dayNames[weekday]+"<div class ='data'>"+(day<10?"0":"")+day+"</div>"+months[month]+"<br>"+year+"<span class = 'digit'>г.</span></div>"; }
clock();
</script>
</body>
</html>


нет смысла обновлять раз в 0.5-1 секунды, как сделать обновление раз в сутки, в 00:00 ?

рони 27.09.2020 00:34

Цитата:

Сообщение от Блондинка
как сделать обновление раз в сутки, в 00:00

вычислить время до конца суток и заменить 500 в строке 26.

Блондинка 27.09.2020 00:41

Цитата:

Сообщение от рони (Сообщение 529280)
вычислить время до конца суток и заменить 500 в строке 26.

рони, вопрос как всё это реализовать, и добавить к этому обновление раз в 24ч по таймеру?

рони 27.09.2020 00:51

Блондинка,
:(
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
<body>
<style>
#clock { overflow: hidden; }
#clock .date { clear: left; text-align: center; width: 100px; }
#clock .date .data .digit {
    border: 1px solid #0000FF;
    float: left;
    width: 26px;
    font-size: 200%;
    text-align: center;
    margin: 0 1.5px;
}
#clock .date .digit {
    border: 1px inset #00FF00;
    margin: 0 1px;
}
</style>
<span id="clock"></span>
<script>
function clock() {
    var date = new Date();
    var day = date.getDate();
    var month = date.getMonth();
    var year = date.getFullYear();
    var weekday = date.getDay();
    var time = new Date(year, month, day + 1, 0, 0, 0, 0)  -  date;
    setTimeout(clock, time);
    var months = ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"];
    var dayNames = ["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"];

    function numberWrapInSpan(num) {
        num = String(num);
        if(num.length === 1) num = "0" + num;
        for (var i = 0, html = ""; i < num.length; i++) html += "<span class=\"digit\">" + num.charAt(i) + "</span>";
        return html;
    }
    day = numberWrapInSpan(day), year = numberWrapInSpan(year);
    document.getElementById("clock").innerHTML = "<div class='date'>"+dayNames[weekday]+"<div class ='data'>"+(day<10?"0":"")+day+"</div>"+months[month]+"<br>"+year+"<span class = 'digit'>г.</span></div>"; }
clock();
</script>
</body>
</html>

Блондинка 27.09.2020 18:50

рони, :thanks:


Часовой пояс GMT +3, время: 08:06.