Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   отчет времени (https://javascript.ru/forum/dom-window/84766-otchet-vremeni.html)

parshin 13.12.2022 17:30

отчет времени
 
Добрый день!
Есть такой вот код:
function dateDiff(d2) {
    var date1 = new Date();
    var date2 = new Date(d2);
    var ms = date2 - date1;
    ms = ms / 1000 + (2 * 3600);
    var days, hours, minutes, seconds;
    days = Math.floor(ms / (3600 * 24));
    ms = ms - days * 3600 * 24;
    hours = Math.floor(ms / 3600);
    ms = ms - hours * 3600;
    minutes = Math.floor(ms / 60);
    seconds = Math.round(ms - minutes * 60);
    if (days <= 9) days = "0" + days;
    if (hours <= 9) hours = "0" + hours;
    if (minutes <= 9) minutes = "0" + minutes;
    if (seconds <= 9) seconds = "0" + seconds;
    tm = days +'д ' + hours + 'ч ' + minutes + 'м ' + seconds + 'с';
    this.document.write(tm);
    setTimeout("dateDiff(d2)",1000);
}

<script language="javascript">
    dateDiff("3/5/2023 18:00");
</script>

Помогите сделать так чтобы скрипт пошел, а то он обновляется только после перезагрузки страницы.

Белый шум 13.12.2022 18:13

parshin,
setTimeout(dateDiff.bind(null, d2),1000);

рони 13.12.2022 18:35

parshin,
<div id="out"></div>
    <script>
        function dateDiff(d2) {
            var date1 = new Date();
            var date2 = new Date(d2);
            var ms = date2 - date1;
            ms = ms / 1000 + (2 * 3600);
            var days, hours, minutes, seconds;
            days = Math.floor(ms / (3600 * 24));
            ms = ms - days * 3600 * 24;
            hours = Math.floor(ms / 3600);
            ms = ms - hours * 3600;
            minutes = Math.floor(ms / 60);
            seconds = Math.round(ms - minutes * 60);
            if (days <= 9) days = "0" + days;
            if (hours <= 9) hours = "0" + hours;
            if (minutes <= 9) minutes = "0" + minutes;
            if (seconds <= 9) seconds = "0" + seconds;
            tm = days + 'д ' + hours + 'ч ' + minutes + 'м ' + seconds + 'с';
            out.innerHTML = tm;
            setTimeout(() => dateDiff(d2), 1000);
        }

        dateDiff("3/5/2023 18:00");
    </script>

parshin 13.12.2022 18:52

Спасибо огромное


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