Задача: написать скрипт, который бы выводил текущую дату и время сервера. Время должно быть «идущим», т.е. имитировать реальную работу.
Пример: https://s.devarts.pro/jquery-time.php
За основу возьмем JavaScript, а движение будем имитировать изменением секунд за одну единицу времени (т.е. с шагом +1). Инструкция ниже.
HTML код
Вся логика генерируется в скрипте. В шаблоне нужен лишь идентификатор для вставки цифр. Для этого используем пустой блок #time.
<span id="time"></span>
JavaScript
Для работы таймера необходима библиотека jQuery. Подключается следующей строкой.
jQuery
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
Скрипт таймера
Основная логика заключена в нескольких строка кода, а именно:
- в начале функции clock() объявлен объект даты;
- логическим переменным присвоены значения этого объекта;
- немного декораций с преобразованием числового индекса месяца в буквенны, а также нулями перед однозначным числом;
- зацикливание функции с итерацией в одну секунду функцией setInterval();
Таким образом скрипт ничего не вычисляет, а лишь обновляется каждую секунду и считывает данные с сервера.
function clock() {
var d = new Date();
var day = d.getDate();
var hrs = d.getHours();
var min = d.getMinutes();
var sec = d.getSeconds();
var mnt = new Array("января", "февраля", "марта", "апреля", "мая",
"июня", "июля", "августа", "сентября", "октября", "ноября", "декабря");
if (day <= 9) day="0" + day;
if (hrs <= 9) hrs="0" + hrs;
if (min <=9 ) min="0" + min;
if (sec <= 9) sec="0" + sec;
$("#time").html("Сейчас: " + hrs + ":" + min + ":" + sec + " " + day + "-го " + mnt[d.getMonth()] + " " + d.getFullYear() + " г.");
}
setInterval("clock()",1000);
Комментарии