Шляхом Альбірео

НовиниЗаписиJSГодинник і календар

2021.09.28
Вивід на сторінку дати і часу за допомоги JS, та форматування, відмінне від стандартного.
Note

Для відображення поточної дати і часу на сторінках існує багато варіантів, але JS має особливості звичайного виводу, які нам були не до вподоби (вірніше, вони не відповідали попередньому задуму). Прийшлося пошукати стежки, щоби обійти обмеження, а саме - виводити дату з ведучими нулями (JS віддає лише у форматі 1,2,3..) і треба скоротити рік з чотирьох цифр по замовченню, до потрібних двох.

Бажаний вигляд:-

Отже, скориставшись багато разів описаними способами виводу об'єкта Date(), ми змінили спосіб форматування результату. Допоміг нам в цьому метод slice(), який вирізає частину рядка, та повертає її вже як новий рядок в ById("calendar"):

/* Функції виводу дати і часу */

[JS]

<script> function currentTime() { var date = new Date(); var hour = date.getHours(); var min = date.getMinutes(); var seconds = date.getSeconds(); /* Форматуємо дату з ведучими нулями і скорочуємо рік до двох цифр */ document.getElementById("calendar").innerText = ('0' + date.getDate()).slice(-2) + '.' + ('0' + (date.getMonth() + 1)).slice(-2) + '.' + ('' + date.getFullYear()).slice(2); /* Форматуємо годинник і періодично його оновлюємо */ document.getElementById("clock").innerText = ('0' + hour).slice(-2) + " : " + ('0' + min).slice(-2) + " : " + ('0' + seconds).slice(-2); var t = setTimeout(function() { currentTime() }, 1000); } currentTime(); </script>

Відобразити на сторінці результат можна будь-яким чином, додавши стилі за смаком:

<!-- Вивід дати і часу на сторінку -->

[HTML]

<div>Дата: <span id="calendar"></span><br>Час: <span id="clock"></span></div>
Note

Для формування нулів годинника є рішення більш професійне - за допомогою функції, яка додає нуль в разі числа, меншого за 10. Прикладом такого підходу може бути код приведений нижче:

/* Функції виводу годинника з лідиручими нулями */

[HTML + JS]

<p id="demo"></p> <script> function addZero(i) { if (i < 10) { i = "0" + i; } return i; } function showTime() { var date = new Date(); var DomElem = document.getElementById("demo"); var hours = addZero(date.getHours()); var minutes = addZero(date.getMinutes()); var seconds = addZero(date.getSeconds()); DomElem.innerHTML = hours + ":" + minutes + ":" + seconds; var t = setTimeout(function() { showTime() }, 1000); } showTime(); </script>

NoteВаріація попередніх скриптів, яка відрізняється лише оформленням.

/* Функція отримання поточної дати і часу і вивід на сторінку */

[JS]

<script> /* Додавання лідируючих нулів */ function zero_first_format(value) { if (value < 10) { value='0'+value; } return value; } /* Функція дата-час */ function date_time() { var current_datetime = new Date(); var day = zero_first_format(current_datetime.getDate()); var month = zero_first_format(current_datetime.getMonth()+1); var year = current_datetime.getFullYear(); var hours = zero_first_format(current_datetime.getHours()); var minutes = zero_first_format(current_datetime.getMinutes()); var seconds = zero_first_format(current_datetime.getSeconds()); return day+"."+month+"."+year+" "+hours+":"+minutes+":"+seconds; } /* Вивід результату в блок з id "current_date_time_block" */ document.getElementById('current_date_time_block').innerHTML = date_time(); /* Кожну секунду отримуємо поточну дату і час */ /* Вивід результату в блок з id "current_date_time_block2" */ setInterval(function () { document.getElementById('current_date_time_block2').innerHTML = date_time(); }, 1000); </script>

На сторінці результат роботи скрипта можна оформити будь-яким чином, додавши стилі:

<!-- Вивід дати і часу на сторінку -->

[HTML]

/* Вивід безпосередньо на сторінку через id "current_date_time_block" */ <div id="current_date_time_block"></div> /* Вивід безпосередньо на сторінку через id "current_date_time_block2" */ <div id="current_date_time_block2"></div>

Результат виконання прикладу: