18 февраля 2020 HTML JavaScript Bootstrap, jQuery
Чтобы при вводе даты в input выпадал удобный календарик можно воспользоваться двумя способами: стандартным полем HTML5 type="date"
или JavaScript библиотекой Bootstrap Datepicker. Рассмотрим подробнее эти способы в этой статье.
Календарь для input HTML5
Просто применяем у input атрибут type="date"
или type="datetime-local"
:
И получаем следующее:
Этот вариант самый простой, но поддерживается не всеми браузерами. Поэтому я предпочитаю использовать JavaScript библиотеку Datepicker.
Календарь для input с помощью Bootstrap DateTimePicker
Нам понадобится:
- jQuery
- Moment.js
- Bootstrap.js
- Bootstrap Datepicker js
- Bootstrap CSS
- Bootstrap Datepicker CSS
- Файлы локалей библиотеки moment.
Скачать библиотеку moment можно отсюда.
Подключаем скрипты к проекту:
Использование с минимальной настройкой:
$(function () { $('#datetimepicker1').datetimepicker(); });
Только время
$(function () { $('#datetimepicker3').datetimepicker({ format: 'LT' }); });
Только дата
$(function () { $('#datetimepicker3').datetimepicker({ format: 'LT' }); });
Поле без иконки
$(function () { $('#datetimepicker4').datetimepicker(); });
Включение/выключение дат
$(function () { $('#datetimepicker5').datetimepicker({ defaultDate: "11/1/2013", disabledDates: [ moment("12/25/2013"), new Date(2013, 11 - 1, 21), "11/22/2013 00:53" ] }); });
Дата от и до
$(function () { $('#datetimepicker6').datetimepicker(); $('#datetimepicker7').datetimepicker({ useCurrent: false //Important! See issue #1075 }); $("#datetimepicker6").on("dp.change", function (e) { $('#datetimepicker7').data("DateTimePicker").minDate(e.date); }); $("#datetimepicker7").on("dp.change", function (e) { $('#datetimepicker6').data("DateTimePicker").maxDate(e.date); }); });
Кастомные иконки
$(function () { $('#datetimepicker8').datetimepicker({ icons: { time: "fa fa-clock-o", date: "fa fa-calendar", up: "fa fa-arrow-up", down: "fa fa-arrow-down" } }); });
Режимы просмотра календаря
$(function () { $('#datetimepicker9').datetimepicker({ viewMode: 'years' }); });
Минимальный вид
$(function () { $('#datetimepicker10').datetimepicker({ viewMode: 'years', format: 'MM/YYYY' }); });
Выключить дни недели
$(function () { $('#datetimepicker11').datetimepicker({ daysOfWeekDisabled: [0, 6] }); });
В линию
$(function () { $('#datetimepicker12').datetimepicker({ inline: true, sideBySide: true }); });