Статьи по JavaScript

Как сравнивать даты в Javascript: практический пример.

С помощью Javascript можно провести сравнение между двумя датами, то есть, простыми словами, проверить, равны ли две даты или одна больше или меньше другой.

Этот процесс оказывается определяющим в некоторых приложениях, которые предварительно просматривают, например, одну дату начала и одну дату окончания.

Рассмотрим практический пример – форму для бронирования отеля, в которой пользователь должен выбрать дату заселения и дату выезда.

Поскольку мы работаем с датами, необходимо иметь возможность проводить сравнения на основе параметров, отправленных через форму, поэтому нашими опорными значениями будут день въезда (имя поля: checkin), день освобождения номера (checkout) и сегодняшняя дата (today).

В нашей гипотетической форме даты вставляются в формате с использованием дефиса в качестве разделителя:

ДД-ММ-ГГГГ

Переменные для работы будут следующими:

var start_date = document.nome_form.checkin.value; var end_date = document.nome_form.checkout.value; var today_date = document.nome_form.today.value;
Code language: JavaScript (javascript)

Теперь, когда мы создали переменные со значениями, переданными формой, мы можем перейти к работе с ними: датами можно управлять как массивами:

var arr1 = start_date.split("-"); var arr2 = end_date.split("-"); var arr3 = today_date.split("-");
Code language: JavaScript (javascript)

“Разбив” наши “массивы” на основании выбранного разделителя, мы можем переместить их значения, используя стандартный формат для дат, в котором год предшествует месяцу и дню:

var d1 = new Date(arr1[2],arr1[1]-1,arr1[0]); var d2 = new Date(arr2[2],arr2[1]-1,arr2[0]); var d3 = new Date(arr3[2],arr3[1]-1,arr3[0]);
Code language: JavaScript (javascript)

Теперь JavaScript сможет “распознать” новые переменные как даты, поэтому мы воспользуемся функцией getTime():

var r1 = d1.getTime(); var r2 = d2.getTime(); var r3 = d3.getTime();
Code language: JavaScript (javascript)

На данном этапе все, что нам нужно сделать, это указать сравнения, которые будут производиться, например, по параметрам, отправленным формой:

if (r1 >= r2) { alert("Дата начала не должна быть позже или равна дате окончания."); } else if (r3 > r1) { alert("Дата начала не должна быть раньше сегодняшнего дня."); }
Code language: JavaScript (javascript)

Используя этот пример в качестве основы, вы можете применять его принципы в более сложных проектах и условиях.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *