Skip to content

DatetimePickerView Date Time Picker View

A base view component for building date and time roller options.

Component Type

Basic Usage

v-model binds the selected value; default type is datetime, value is timestamp.

html
<wd-datetime-picker-view v-model="value" @change="handleChange" />
ts
const value = ref<number>(Date.now())
const handleChange = ({ value }: { value: number | string }) => {
  console.log(value)
}

Component Variants

Date Types

Supports five types: datetime, date, year-month, year, time.

html
<wd-datetime-picker-view type="date" v-model="dateValue" />
<wd-datetime-picker-view type="year-month" v-model="yearMonthValue" />
<wd-datetime-picker-view type="year" v-model="yearValue" />
<wd-datetime-picker-view type="time" v-model="timeValue" />
<wd-datetime-picker-view type="datetime" v-model="datetimeValue" />
ts
const dateValue = ref<number>(Date.now())
const yearMonthValue = ref<number>(Date.now())
const yearValue = ref<number>(Date.now())
const timeValue = ref<string>('11:12')
const datetimeValue = ref<number>(Date.now())

Enable Seconds Selection

In time and datetime types, you can display the seconds column via use-second.

html
<wd-datetime-picker-view type="time" v-model="timeValue" use-second />
<wd-datetime-picker-view type="datetime" v-model="value" use-second />
ts
const timeValue = ref<string>('11:12:30')
const value = ref<number>(Date.now())

Component Style

Custom Internal Format

Customize roller text format via formatter.

html
<wd-datetime-picker-view v-model="value" :formatter="formatter" />
ts
const formatter = (type: string, value: number) => {
  switch (type) {
    case 'year':
      return `${value}Year`
    case 'month':
      return `${value}Month`
    case 'date':
      return `${value}Day`
    case 'hour':
      return `${value}Hour`
    case 'minute':
      return `${value}Minute`
    case 'second':
      return `${value}Second`
    default:
      return `${value}`
  }
}

Filter Options

Filter selectable values by column via filter.

html
<wd-datetime-picker-view v-model="value" :filter="filter" />
ts
const filter = ({ type, values }: { type: string; values: number[] }) => {
  if (type === 'minute') {
    return values.filter((value) => value % 5 === 0)
  }
  return values
}

Attributes

ParameterDescriptionTypeDefault Value
v-model / modelValueSelected item, time type is string, others are timestampstring | number-
typePicker type, optional values are datetime, date, year-month, time, yearDateTimeTypedatetime
item-heightSingle item heightnumber44
visible-item-countNumber of visible itemsnumber6
value-keyOption value field namestringvalue
label-keyOption text field namestringlabel
formatterCustom option text formatting functionDatetimePickerViewFormatter-
filterCustom filter functionDatetimePickerViewFilter-
column-formatterCustom column formatting functionDatetimePickerViewColumnFormatter-
min-dateMinimum date (timestamp)numberJanuary 1st, 10 years before current year
max-dateMaximum date (timestamp)numberDecember 31st, 10 years after current year
min-hourMinimum hour (effective for time type)number0
max-hourMaximum hour (effective for time type)number23
min-minuteMinimum minute (effective for time type)number0
max-minuteMaximum minute (effective for time type)number59
use-second v1.10.0Whether to display seconds selection, only effective for time and datetimebooleanfalse
min-second v1.10.0Minimum seconds, only effective for time and datetimenumber0
max-second v1.10.0Maximum seconds, only effective for time and datetimenumber59
immediate-change v1.2.25Whether to trigger change immediately when finger is released (WeChat/Alipay Mini Program only)booleanfalse
boundary-min-dateRange mode start time minimum boundary (for linkage)number-
boundary-max-dateRange mode end time maximum boundary (for linkage)number-
custom-classCustom class name for root nodestring''
custom-styleCustom style for root nodestring''

Events

Event NameDescriptionParameters
changeTriggered when selected item changes{ value, columns }
pickstartTriggered when scrolling starts-
pickendTriggered when scrolling ends-

Methods

Method NameDescriptionParameters
getSelectedOptionsGet current selected item object array-
correctValueCorrect and return valid valuevalue: string | number
getOriginColumnsGet original column definitions-

Types

DatetimePickerViewColumn

KeyDescriptionType
typeColumn typeyear | month | date | hour | minute | second
valuesCurrent column selectable value arraynumber[]

DatetimePickerViewOption

KeyDescriptionType
valueOption valuenumber
labelOption display textstring
disabledWhether disabledboolean

Source Code

Documentation
Component

Released under the MIT License.

Released under the MIT License.