DatetimePicker
Intro
Used to select time, support date and time dimensions, usually used with the Popup component.
Install
import Vue from 'vue';
import { DatetimePicker } from 'vant';
Vue.use(DatetimePicker);
Usage
Choose Date
<van-datetime-picker
v-model="currentDate"
type="date"
title="Choose Date"
:min-date="minDate"
:max-date="maxDate"
/>
export default {
data() {
return {
minDate: new Date(2020, 0, 1),
maxDate: new Date(2025, 10, 1),
currentDate: new Date(2021, 0, 17),
};
},
};
Choose Year-Month
<van-datetime-picker
v-model="currentDate"
type="year-month"
title="Choose Year-Month"
:min-date="minDate"
:max-date="maxDate"
:formatter="formatter"
/>
export default {
data() {
return {
minDate: new Date(2020, 0, 1),
maxDate: new Date(2025, 10, 1),
currentDate: new Date(),
};
},
methods: {
formatter(type, val) {
if (type === 'year') {
return `${val} Year`;
} else if (type === 'month') {
return `${val} Month`;
}
return val;
},
},
};
Choose Month-Day
<van-datetime-picker
v-model="currentDate"
type="month-day"
title="Choose Month-Day"
:min-date="minDate"
:max-date="maxDate"
:formatter="formatter"
/>
export default {
data() {
return {
minDate: new Date(2020, 0, 1),
maxDate: new Date(2025, 10, 1),
currentDate: new Date(),
};
},
methods: {
formatter(type, val) {
if (type === 'month') {
return `${val} Month`;
} else if (type === 'day') {
return `${val} Day`;
}
return val;
},
},
};
Choose Time
<van-datetime-picker
v-model="currentTime"
type="time"
title="Choose Time"
:min-hour="10"
:max-hour="20"
/>
export default {
data() {
return {
currentTime: '12:00',
};
},
};
Choose DateTime
<van-datetime-picker
v-model="currentDate"
type="datetime"
title="Choose DateTime"
:min-date="minDate"
:max-date="maxDate"
/>
export default {
data() {
return {
minDate: new Date(2020, 0, 1),
maxDate: new Date(2025, 10, 1),
currentDate: new Date(),
};
},
};
Choose DateHour
<van-datetime-picker
v-model="currentDate"
type="datehour"
title="Choose DateTime"
:min-date="minDate"
:max-date="maxDate"
/>
export default {
data() {
return {
minDate: new Date(2020, 0, 1),
maxDate: new Date(2025, 10, 1),
currentDate: new Date(),
};
},
};
Option Filter
<van-datetime-picker
v-model="currentTime"
type="time"
title="Option Filter"
:filter="filter"
/>
export default {
data() {
return {
currentTime: '12:00',
};
},
methods: {
filter(type, options) {
if (type === 'minute') {
return options.filter((option) => option % 5 === 0);
}
return options;
},
},
};
Columns Order
<van-datetime-picker
v-model="currentDate"
type="date"
title="Columns Order"
:columns-order="['month', 'day', 'year']"
:formatter="formatter"
/>
export default {
data() {
return {
currentDate: new Date(),
};
},
methods: {
formatter(type, val) {
if (type === 'year') {
return val + ' Year';
}
if (type === 'month') {
return val + ' Month';
}
if (type === 'day') {
return val + ' Day';
}
return val;
},
},
};
API
Props
Attribute |
Description |
Type |
Default |
type |
Can be set to date time year-month month-day datehour |
string |
datetime |
title |
Toolbar title |
string |
'' |
confirm-button-text |
Text of confirm button |
string |
Confirm |
cancel-button-text |
Text of cancel button |
string |
Cancel |
show-toolbar |
Whether to show toolbar |
boolean |
true |
loading |
Whether to show loading prompt |
boolean |
false |
readonly v2.10.5 |
Whether to be readonly |
boolean |
false |
filter |
Option filter |
(type, vals) => vals |
- |
formatter |
Option text formatter |
(type, val) => val |
- |
columns-order v2.9.2 |
Array for ordering columns, where item can be set to year , month , day , hour and minute |
string[] |
- |
item-height v2.8.6 |
Option height, supports px vw vh rem unit, default px |
number | string |
44 |
visible-item-count |
Count of visible columns |
number | string |
6 |
swipe-duration |
Duration of the momentum animation,unit ms |
number | string |
1000 |
DatePicker Props
Following props are supported when the type is date or datetime
Attribute |
Description |
Type |
Default |
min-date |
Min date |
Date |
Ten years ago on January 1 |
max-date |
Max date |
Date |
Ten years later on December 31 |
TimePicker Props
Following props are supported when the type is time
Attribute |
Description |
Type |
Default |
min-hour |
Min hour for time type |
number | string |
0 |
max-hour |
Max hour for time type |
number | string |
23 |
min-minute |
Max minute for time type |
number | string |
0 |
max-minute |
Max minute for time type |
number | string |
59 |
Events
Event |
Description |
Arguments |
change |
Emitted when value changed |
picker: Picker instance |
confirm |
Emitted when the confirm button is clicked |
value: current value |
cancel |
Emitted when the cancel button is clicked |
- |
Slots
Name |
Description |
SlotProps |
default v2.11.1 |
Custom toolbar content |
- |
title v2.11.1 |
Custom title |
- |
confirm v2.11.1 |
Custom confirm button text |
- |
cancel v2.11.1 |
Custom cancel button text |
- |
option v2.11.1 |
Custom option content |
option: string | object |
columns-top v2.11.1 |
Custom content above columns |
- |
columns-bottom v2.11.1 |
Custom content below columns |
- |
Methods
Use ref to get DatetimePicker instance and call instance methods.
Name |
Description |
Attribute |
Return value |
getPicker v2.5.3 |
get Picker instance |
- |
- |