Уроки JavaScript – как получить текущую дату и время
Одной из самых интересных вещей в JavaScript является получение доступа к дате и времени, и дальнейшая работа с ними. На самом деле это очень легко, и в сегодняшней статье мы рассмотрим этот процесс очень детально. В JavaScript уже есть встроенный объект, который получает дату и время – все, что вам нужно сделать, это просто использовать его!
Объект даты Date() в JavaScript
Чтобы использовать этот объект даты, вы должны сначала создать его экземпляр. Для этого выполните следующее:
<script type="text/javascript"> var currentDate = new Date(); console.log(currentDate); </script>
Всякий раз, когда вам нужно создать экземпляр объекта Date(), используйте похожую конструкцию (с использованием ключевого слова new, за которым следует имя объекта). После доступа к объекту даты, вы можете обращаться к нужным методам этого объекта.
Некоторые методы объекта даты:
| Метод объекта | Возвращаемое значение |
|---|---|
| getDate() | возвращает день месяца |
| getDay() | возвращает день недели |
| getHours() | возвращает час (начинается с 0-23) |
| getMinutes() | возвращает минуты |
| getSeconds() | возвращает секунды |
| getMonth() | возвращает месяц (начинается с 0-11) |
| getFullYear() | возвращает текущий год |
| getTime() | возвращает полное время (в немного странном формате) |
Теперь перейдем к практике.
Допустим, вам нужно получить сегодняшнюю дату. Тогда используйте следующую конструкцию:
<script type="text/javascript">
var todayDate = new Date();
var currYear = todayDate.getFullYear();
var currMonth = todayDate.getMonth()+1;
var currDay = todayDate.getDate();
document.write("Сегодняшняя дата: ");
document.write(currDay + "-" + currMonth + "-" + currYear);
</script>
Результат будет следующего формата:
Сегодняшняя дата: 7-4-2019 // завтра результат будет другой, поскольку дата изменится
Давайте немного расшифруем приведенный выше код:
todayDate– это переменная, в которую записывается экземпляр объектаDate(). Вы можете назвать эту переменную как угодно. После создания экземпляра, эта переменная будет иметь доступ ко всем методам данного объекта. Например, выражение:
var currYear = todayDate.getFullYear();
означает «Получить текущий год и присвоить его переменной currYear».
- Мы добавили
+1к переменной месяца (currMonth), поскольку в JavaScript месяцы отсчитываются, начиная с «0», а не с «1». - Объект
Date()в JavaScript всегда использует значения даты и времени, которые установлены на компьютере текущего пользователя. Таким образом, для разных пользователей будут показываться разные дата/время, в зависимости от того, в каком месте мира он или она находится.
Практические решения с использованием даты в JavaScript
- Показ разных картинок на сайте в зависимости от времени суток
Обладая вышеуказанными знаниями, вы можете отображать различные картинки на своем сайте в зависимости от текущей даты/времени. Например, вам нужно сменять фоновую картинку (бэкграунд) сайта в зависимости от того, что сейчас за окном – день или ночь.
Подготовьте две разные картинки (одну для дня, другую для ночи).
Теперь добавьте простой скрипт:
<script type="text/javascript">
var currDay = new Date();
var dayTime = currDay.getHours();
if (dayTime <= 21) {
document.write("<img src='day.jpg'>");
} else {
document.write("<img src='night.jpg'>");
}
</script>
Здесь мы проверяем текущее время, если сейчас больше 21:00, тогда будет показываться фоновая картинка для ночи, в противном случае будет показана фоновая картинка для светлого времени суток.
- Добавление на сайт онлайн часов с помощью формы
Добавить онлайн часы на сайт с помощью JavaScript и формы довольно просто. Основная концепция заключается в том, чтобы непрерывно записывать данные времени в поле формы каждую 1 секунду, используя обновленное время с компьютера пользователя.
Вы можете скопировать и вставить приведенный ниже код на свой сайт и, при желании, немного поиграться с ним:
<form name="Clock">
<input type="text" size="10" name="timer">
</form>
<script type="text/javascript">
function showCurrentTime(){
var currDate = new Date();
var hours = currDate.getHours();
var minutes = currDate.getMinutes();
var seconds = currDate.getSeconds();
if (minutes <= 9) {
minutes = "0" + minutes;
}
if (seconds <= 9) {
seconds = "0" + seconds;
}
document.Clock.timer.value = hours + ":" + minutes + ":" + seconds;
setTimeout("showCurrentTime()", 1000);
}
showCurrentTime();
</script>
Некоторые пояснения кода:
- Если минуты/секунды меньше или равны 9, мы добавляем перед цифрой времени 0, чтобы формат секунд и минут был в двухзначном виде с ведущим нулем.
- В рассмотренном коде основной частью является метод JavaScript
setTimeout, который запускает функциюshowCurrentTime()каждую секунду. Данный метод обновляет функцию каждую секунду, что создает иллюзию, что часы действительно тикают. - Помните, формат часов в JavaScript от 0 до 23, а не от 1 до 24!
- Важно! Не используйте форму на своем реальном сайте для показа часов. Такая реализация имеет свои преимущества, но в данном уроке она используется только лишь для демонстрационных целей. Используйте для этого другие HTML элементы.