Daterange picker
This date range picker component creates a dropdown menu from which a user can select a range of dates. If invoked with no options, it will present two calendars to choose a start and end date from. Optionally, you can provide a list of date ranges the user can select from instead of choosing dates from the calendars. Features include limiting the selectable date range, localizable strings and date formats, a single date picker mode, a time picker, and predefined date ranges.
Daterange picker with minimum configuration. You can customize it and limit the selectable date range, localize strings and date formats, show a single date picker mode, a time picker, and predefined date ranges.
By default, date picker displays only day grid with day names.
You can optionally display localized week numbers at the start of each week
on the calendars. To do that, set showWeekNumbers
to
true
.
In addition to days and weeks, you can also show 2 select boxes
with time range. To show them, set timePicker
option to
true
. Also use timePickerIncrement
to change
minutes increment and timePicker24Hour
to change time format.
Show only a single calendar to choose one date, instead of a
range picker with two calendars. The start and end dates provided to your
callback will be the same single date chosen. Just set
singleDatePicker
to true
.
Another example of basic range picker, but attached to a regular input field to demonstrate flexibility of configuration. You can attach it to any element: button or inline text, input field or heading. No extra config requred.
Use 3 options to customize action buttons:
buttonClasses
to change classes in both apply and cancel
buttons, applyButtonClasses
to update classes in Apply button
and cancelButtonClasses
to update classes in Cancel button.
Default alignment of date picker if left. Use opens
option with 'left'/'right'/'center'
values to change the
alignment to right or center relalatively to the HTML element it's attached
to. In RTL direction alignment is mirrored.
Daterange picker doesn't allow you to quickly jump to specific
year or month by default. Set showDropdowns
option to
true
to display 2 select boxes with a list of years and months
in the header area.
As mentioned yearlier, minutes selection list is displayed with
30 minutes increment. You can modify this value with
timePickerIncrement
option. This example demonstrates 10
minutes increment.
Combination of daterange picker's locale
and
ranges
options allow you to provide localized strings for
buttons and labels, customize the date format, and change the first day of
week for the calendars.
Daterange picker can also have pre-defined date ranges displayed as a list of ranges in menu format and an ability to select a custom range. Calendars are hidden by default and shown only when custom range is selected.
The following example demonstrates daterange picker attached to
the button. The logic is similar to input field, but selected date range is
appended to <span>
element inside the button, to avoid
overriding of other child elements.
Date picker
Date picker is a remake of widely used Bootstrap Datepicker written from scratch using vanilla JS to reproduce similar usability. Works in 3 modes: dropdown, inline and range. Also supports keyboard operations, localization, customization via SCSS/CSS and is dependency free. This specific version includes a few additions, custom design and re-uses Bootstrap classes for seamless integration with Bootstrap framework.
By default, Datepicker object is attached to an
<input>
element that is configured as a regular date picker
displayed in dropdown. Aside from a couple of exceptions, config options can
be updated dynamically using the setOptions()
method.
Date picker remains opened when date is selected and can be
closed with pressing Esc key or clicking outside. If
autoHide
option is set to true
, picker gets hidden
immediately after a date is selected.
If calendarWeeks
option is set to
true
, week numbers will be displayed in the first column of
days grid. Week numbers use ISO week-numbering year, which has 52 or 53 full
weeks. That is 364 or 371 days instead of the usual 365 or 366 days.
Depending on specific use case, date picker can have a clear
button that allows you to clear selected date in both input field and date
picker itself. To show clear button, set clearBtn
option to
true
in date picker configuration.
Today button allows you to quickly jump to today's date if you
navigate away. It's displayed below the days grid on the same line with
Clear button and is hidden by default. Set todayBtn
option to
true
to enable it.
Date picker can have certain week days disabled. That's
especially useful when you need to prevent users from selecting weekend days
for instance. Use daysOfWeekDisabled
option with an array of
day numbers starting from 0
(Sunday).
Date picker can also have specific dates disabled. Useful when you need to disable public holidays or days with no available time slots. Supports array of date strings, date objects, time values or mix of those. Bear in mind date formatting.
Date picker can also have week days highlighted with different
color. Although you can highlight up to 6 days, they all can have only 1
general style. Use daysOfWeekHighlighted
option with an array
of numbers starting from 0
(Sunday).
Date range picker is essentially a wrapper/controller of 2 date
pickers, which cannot be attached to elements that contain less than 2
<input>
elements. Range picker supports almost all options
from regular date picker and are applied to its start- and end-date pickers.
Date format can be easily changed in format
config
option. It must be declared using the combination of the predefined tokens
and separators. Alternatively to format string you can use object that
contains custom parser and formatter functions.
Regular date picker can be easily turned into multiple date
picker with maxNumberOfDates
option. Default value is
1
, no limit is applied if 0
is set. Additionally
use dateDelimiter
option to change dates separator in the input
field.
By default, date picker doesn't have minimum limit of selectable
date and is infinite. To set minimum date that user can select, use
minDate
config option. You can use String
,
Date
or Number
date types.
By default, date picker doesn't have maximum limit of selectable
date and is infinite. To set maximum date that user can select, use
maxDate
config option. You can use String
,
Date
or Number
date types.
The level that the date picker allows to pick. Default value of
pickLevel
option is 0
, which corresponds to date.
You can also use 1
to set month and 2
to set year.
This example allows you to pick only a month and a year.
The view displayed when the date picker opens. Default view can
be changed with startView
option, where allowed values are
0
(days, default), 1
(months), 2
(years) and 3
(decades). In this example start view is set to
years.
Date picker can have a title shown in the date picker's title
bar above month/year toolbar, use a string in title
option to
add it. Title bar is not displayed if the title is empty, this is a default
behaviour.
Default start day of the week is Sunday, but this differs per
country. You can change it to Monday by setting weekStart
option value to 6
. The count starts from 0
(Sunday) to 6
(Saturday).
When allowOneSidedRange
option is
false
, if the user selects a date on one side while the other
side is blank, the date range picker complements the blank side with the
same date as the selected side. The same is applied to the other side
automatically.