Skip to content

DateTime Field

BsDateTimeField is a fully featured date selection component that let users select a date, time, month, year, or datetime.

Overview

BsDateTimeField uses BsDatePicker and BsPopover components internally and mimics like HTML <input> element. This means that you can add attributes like readonly, disabled, required and it will react to them to give the best experience. You can also use v-model directive to create two-way data bindings on the model-value property.

IMPORTANT

Do not use the model-value property when using v-model.

Style Variants

You can style <bs-date-time-field> to your own preference or use a style variant based on Google Material Design 2 or Material Design 3 specifications.

Default

You can style <bs-date-time-field> that follows Google Material Design 2 specifications by using floating-label property explicitly.

Filled

Use filled property explicitly to enable <bs-date-time-field> with solid fill style. And when combined with floating-label property, <bs-date-time-field> will have a style that follows the Google Material Design 3 specifications.

Outlined

Use outlined property explicitly to enable <bs-date-time-field> with outline style. And when combined with floating-label property, <bs-date-time-field> will have a style that follows the Google Material Design 3 specifications.

Clearable

Define the clear-button property explicitly, so that the field value can be cleared easily.

DateTime Formatting

Use display-format property to customize displayed datetime and value-format property to customize the output value format. If display-format property is not defined, then value-format will be used to format the displayed datetime.

INFO

See Luxon for more information about DateTime formatting.

Picker Selection Modes

Use picker-mode property to change the Date Picker view mode and selection mode. Date selection mode is the default selection. You need to adjust the display-format and value-format properties to match the picker-mode.

Date mode

DateTime mode

Month mode

Year mode

Time mode

Picker Color Style

The Date picker colors can be customize using the picker-color and header-color property.

TIP

Any MDBootstrap Color variants and Material Color variants can be be applied to the header-color and picker-color property.

Landscape Orientation

Define landscape-mode property explicitly to display the Date picker in landscape orientation.

INFO

Landscape orientation only works on medium screen size and above.

Hover Display Support

The Date picker can be displayed using mouse on-hover instead of clicking with the open-on-hover property.

Help Text

The help-text property on <bs-date-time-field> adds an help text beneath the DateTime field. And sets the persistent-help-text property to false will make the help text visible only when the DateTime field is focused.

Icons

The properties prepend-icon, prepend-icon-outer, append-icon and append-icon-outer provides the ability to add icon to <bs-date-time-field>.

Use any valid android icon name from Google Material Symbols with or without a suffix. Valid suffixes are: _outlined, _rounded, _sharp, _filled, _outlined_filled, _rounded_filled, and _sharp_filled. Suffix _filled and _outlined_filled will display the same icon style variant.

Updated on v2.1.0

TIP

The default icon of <bs-date-time-field> can be change via append-icon property.

INFO

Since Vue MDBootstrap v2.1.0, Google Material Icons are replaced with Google Material Symbols.

Usage Example

The following is an example that demonstrate more advanced use of the <bs-date-time-field> with form validation.

CSS Variables

Added since v2.0.0
scss
--md-field-active-border-color: rgb(var(--md-field-active-indicator));
--md-field-active-border-width: 2px;
--md-field-color-bg: currentColor;
--md-field-border-color: currentColor;
--md-field-border-width: 1px;
--md-field-control-height: 3.5rem;
--md-field-floating-label-color: var(--md-field-label-color);
--md-field-label-color: currentColor;
--md-field-padding-start: 1rem;
--md-field-padding-end: 1rem;
--md-field-padding-top: 1.625rem;
--md-field-padding-bottom: 0.375rem;

// global css variables
--md-field-primary-indicator-rgb: 98, 0, 238;
--md-field-primary-indicator: rgb(var(--md-field-primary-indicator-rgb));
--md-field-accent-indicator-rgb: 185,156,225;
--md-field-accent-indicator: rgb(var(--md-field-accent-indicator-rgb));
--md-field-active-indicator: var(--md-field-primary-indicator-rgb);

// date picker css variables
--md-datepicker-border-radius: .375rem;
--md-datepicker-padding-x: 1rem;
--md-datepicker-padding-y: 1rem;
--md-datepicker-header-color: #fff;
--md-datepicker-table-header-color: #6c757d;
--md-datepicker-title-font-size: 1.8rem;
--md-datepicker-subtitle-font-size: 1.25rem;

API Reference

TValidator

The validator configuration option has properties as described below:

PropertyTypeDescription
validatorsRecord<String,Boolean>External validator plugin validation result.
messagesRecord<String,String>Validation message for each validation types.
hasErrorBooleanAn indicator that tells the field value pass the validation or not.
dirtyBooleanValue comes from validator plugin that indicate the field is dirty or not.

All properties are mandatory.

NOTE

Vue MDBootstrap does not include form validation by default, we leave that up to the 3rd party form validation plugin. As of now, Vuelidate has been fully tested with our component library.

Released under the BSD-3-Clause License.