Tempus Dominus Bootstrap 4插件的书面版本。
Tempus Dominus是一款功能强大、完全可定制、轻量级的Vanilla JavaScript和jQuery日期/时间选择器。它是对本地HTML5日期和时间输入类型的零依赖性替换
1.要开始,请在文档中加载所需的popperjs库、Font Awesome 5和Tempus Dominus文件。
- <link rel="stylesheet" href="/path/to/dist/css/tempus-dominus.css" />
- <link rel="stylesheet" href="/path/to/[email protected]/all.min.css" />
- <script src="/path/to/[email protected]/popper.min.js"></script>
- <script src="/path/to/dist/js/tempus-dominus.js"></script>
2.您仍然可以将其用作jQuery插件。
- <script src="/path/to/jquery.min.js"></script>
- <script src="/path/to/dist/js/jQuery-provider.min.js"></script>
3.将日期选择器附加到输入字段。
- <input id="example" type="text" />
- // Vanilla JS
- new tempusDominus.TempusDominus(document.getElementById('example'), {
- // options here
- });
- // jQuery
- $('#example').tempusDominus({
- // options here
- });
4.启用触发按钮以切换日期选择器。
- <div
- class="input-group"
- id="example"
- data-td-target-input="nearest"
- data-td-target-toggle="nearest"
- >
- <input
- id="exampleInput"
- type="text"
- data-td-target="#example"
- />
- <span
- class="input-group-text"
- data-td-target="#example"
- data-td-toggle="datetimepicker"
- >
- <span class="fas fa-calendar"></span>
- </span>
- </div>
- // Vanilla JS
- new tempusDominus.TempusDominus(document.getElementById('example'), {
- // options here
- });
- // jQuery
- $('#example').tempusDominus({
- // options here
- });
5.您还可以将日期选择器附加到文档中的任何元素。
- <span
- id="example"
- >
- <i class="fa-solid fa-calendar"></i>
- </span>
- // Vanilla JS
- new tempusDominus.TempusDominus(document.getElementById('example'), {
- // options here
- });
- // jQuery
- $('#example').tempusDominus({
- // options here
- });
6.设置日期选择器的语言。当地可用:
- new tempusDominus.TempusDominus(document.getElementById('example'), {
- localization: {
- dayViewHeaderFormat: { month: 'long', year: '2-digit' },
- locale: 'es',
- startOfTheWeek: 0
- },
- });
7.组合两个日期选择器以创建一个日期范围选择器。
- <!-- Date Picker 1 -->
- <label for="linkedPickers1Input" class="form-label">From</label>
- <div
- class="input-group log-event"
- id="linkedPickers1"
- data-td-target-input="nearest"
- data-td-target-toggle="nearest"
- >
- <input
- id="linkedPickers1Input"
- type="text"
- class="form-control"
- data-td-target="#linkedPickers1"
- />
- <span
- class="input-group-text"
- data-td-target="#linkedPickers1"
- data-td-toggle="datetimepicker"
- >
- <span class="fa-solid fa-calendar"></span>
- </span>
- </div>
- <!-- Date Picker 2 -->
- <label for="linkedPickers2Input" class="form-label">To</label>
- <div
- class="input-group log-event"
- id="linkedPickers2"
- data-td-target-input="nearest"
- data-td-target-toggle="nearest"
- >
- <input
- id="linkedPickers2Input"
- type="text"
- class="form-control"
- data-td-target="#linkedPickers2"
- />
- <span
- class="input-group-text"
- data-td-target="#linkedPickers2"
- data-td-toggle="datetimepicker"
- >
- <span class="fa-solid fa-calendar"></span>
- </span>
- </div>
- const linkedPicker1Element = document.getElementById('linkedPickers1');
- const linked1 = new tempusDominus.TempusDominus(linkedPicker1Element);
- const linked2 = new tempusDominus.TempusDominus(document.getElementById('linkedPickers2'), {
- useCurrent: false
- });
- // using event listeners
- linkedPicker1Element.addEventListener(tempusDominus.Namespace.events.change, (e) => {
- linked2.updateOptions({
- restrictions: {
- minDate: e.detail.date
- }
- });
- });
- // using subscribe method
- const subscription = linked2.subscribe(tempusDominus.Namespace.events.change, (e) => {
- linked1.updateOptions({
- restrictions: {
- maxDate: e.date
- }
- });
- });
8.所有默认选项:
- const linkedPicker1Element = document.getElementById('linkedPickers1');
- new tempusDominus.TempusDominus(document.getElementById('example'), {
- // enable/disable dates & times
- restrictions: {
- minDate: undefined,
- maxDate: undefined,
- disabledDates: [],
- enabledDates: [],
- daysOfWeekDisabled: [],
- disabledTimeIntervals: [],
- disabledHours: [],
- enabledHours: []
- },
- // display options
- display: {
- icons: {
- // "icons" or "sprites"
- type: 'icons',
- time: 'fa-solid fa-clock',
- date: 'fa-solid fa-calendar',
- up: 'fa-solid fa-arrow-up',
- down: 'fa-solid fa-arrow-down',
- previous: 'fa-solid fa-chevron-left',
- next: 'fa-solid fa-chevron-right',
- today: 'fa-solid fa-calendar-check',
- clear: 'fa-solid fa-trash',
- close: 'fa-solid fa-xmark'
- },
- // display the date and time pickers side by side
- sideBySide: false,
- // display an additional column with the calendar week for that week
- calendarWeeks: false,
- // 'clock' | 'calendar' | 'months' | 'years' | 'decades'
- viewMode: 'calendar',
- // 'top' | 'bottom'
- toolbarPlacement: 'bottom',
- keepOpen: false,
- // enable/disable buttons
- buttons: {
- today: false,
- clear: false,
- close: false
- },
- // enable/disable components
- components: {
- calendar: true,
- date: true,
- month: true,
- year: true,
- decades: true,
- clock: true,
- hours: true,
- minutes: true,
- seconds: false,
- useTwentyfourHour: false
- },
- // inline mode
- inline: false
- },
- // control how much the minutes are changed by
- stepping: 1,
- // use the current date/time
- useCurrent: true,
- defaultDate: undefined,
- localization: {
- today: 'Go to today',
- clear: 'Clear selection',
- close: 'Close the picker',
- selectMonth: 'Select Month',
- previousMonth: 'Previous Month',
- nextMonth: 'Next Month',
- selectYear: 'Select Year',
- previousYear: 'Previous Year',
- nextYear: 'Next Year',
- selectDecade: 'Select Decade',
- previousDecade: 'Previous Decade',
- nextDecade: 'Next Decade',
- previousCentury: 'Previous Century',
- nextCentury: 'Next Century',
- pickHour: 'Pick Hour',
- incrementHour: 'Increment Hour',
- decrementHour: 'Decrement Hour',
- pickMinute: 'Pick Minute',
- incrementMinute: 'Increment Minute',
- decrementMinute: 'Decrement Minute',
- pickSecond: 'Pick Second',
- incrementSecond: 'Increment Second',
- decrementSecond: 'Decrement Second',
- toggleMeridiem: 'Toggle Meridiem',
- selectTime: 'Select Time',
- selectDate: 'Select Date',
- dayViewHeaderFormat: { month: 'long', year: '2-digit' },
- locale: 'default',
- // 0 = Sunday, 6 = Saturday
- startOfTheWeek: 0
- },
- keepInvalid: false,
- debug: false,
- // show the date picker on focus
- allowInputToggle: false,
- viewDate: new DateTime(),
- multipleDates: false,
- multipleDatesSeparator: '; ',
- promptTimeOnDateChange: false,
- promptTimeOnDateChangeTransitionDelay: 200,
- // provide developers a place to store extra information about the picker
- meta: {},
- // change the target container
- container: undefined,
- // enable date range selection
- dateRange: false,
- // custom separator for multiple dates
- multipleDatesSeparator: '; ',
- // placemenet
- placement: 'bottom',
- });
9.API方法:
- const myPicker = new tempusDominus.TempusDominus(document.getElementById('example'), {
- // ...
- });
- // return the current date
- myPicker.viewDate
- // return a DateTime object
- myPicker.dates
- // return the picked date
- myPicker.dates.picked
- // return the last picked date
- myPicker.dates.lastPicked
- // return the last picked index
- myPicker.dates.lastPickedIndex
- // add a DateTime
- myPicker.dates.add(DateTime);
- // set the date index
- myPicker.dates.setValue(value: DateTime, index?: number);
- // convert a DateTime object to a string
- myPicker.dates.formatInput(value: DateTime);
- // convert a string into a DateTime object
- myPicker.dates.setFromInput(value: any, index?: number);
- // return true if the target date is part of the selected dates array
- myPicker.dates.isPicked(DateTime, Unit?);
- // return the index at which target date is in the array
- myPicker.dates.pickedIndex(DateTime, Unit?);
- // clear all picked dates
- myPicker.dates.clear();
- // OR
- myPicker.clear();
- // toggle the date picker
- myPicker.toggle();
- // show the date picker
- myPicker.show();
- // hide the date picker
- myPicker.hide();
- // add/remove CSS classes
- myPicker.paint(Unit | 'decade', DateTime, string[], HTMLElement);
- // enable the date input
- myPicker.enable();
- // disable the date input
- myPicker.disable();
- // toggle the date input
- myPicker.enable();
- // destroy the date picker
- myPicker.dispose();
- // update options
- myPicker.updateOptions(object, boolean?);
10.事件:
- const myPicker = new tempusDominus.TempusDominus(document.getElementById('example'), {
- // ...
- });
- const subscription = picker.subscribe(tempusdominus.Namespace.events.change, (e) => {
- // on change
- });
- const subscription = picker.subscribe(tempusdominus.Namespace.events.show, (e) => {
- // on show
- });
- const subscription = picker.subscribe(tempusdominus.Namespace.events.hide, (e) => {
- // on hide
- });
- const subscription = picker.subscribe(tempusdominus.Namespace.events.update, (e) => {
- // on update
- });
- const subscription = picker.subscribe(tempusdominus.Namespace.events.error, (e) => {
- // on error
- });
版本6.7.7(2023-04-23)
版本6.4.4(2023-03-22)
版本6.4.3(2023-03-17)
版本6.4.1(2023-03-15)
版本6.2.10(2022-12-24)
版本6.2.9(2022-12-16)
版本6.2.8(2022-12-15)
版本6.2.7(2022-11-05)
版本6.2.6(2022-10-29)
版本6.2.5(2022-10-25)
版本6.2.4(2022-09-29)
版本6.2.3(2022-09-28)
版本6.1.2(2022-09-23)
版本6.0.1(2022-08-31)
版本6.0.0(2022-08-16)
Â