• DatetimePicker 时间选择
    • 介绍
    • 引入
  • 代码演示
    • 选择完整时间
    • 选择日期(年月日)
    • 选择日期(年月)
    • 选择时间
    • 选项过滤器
  • API
    • Props
    • Events
    • change 事件

    DatetimePicker 时间选择

    介绍

    时间选择组件通常与 弹出层 组件配合使用

    引入

    1. import { DatetimePicker } from 'vant';
    2. Vue.use(DatetimePicker);

    代码演示

    选择完整时间

    1. <van-datetime-picker
    2. v-model="currentDate"
    3. type="datetime"
    4. :min-date="minDate"
    5. :max-date="maxDate"
    6. />
    1. export default {
    2. data() {
    3. return {
    4. minHour: 10,
    5. maxHour: 20,
    6. minDate: new Date(),
    7. maxDate: new Date(2019, 10, 1),
    8. currentDate: new Date()
    9. };
    10. }
    11. };

    选择日期(年月日)

    1. <van-datetime-picker
    2. v-model="currentDate"
    3. type="date"
    4. :min-date="minDate"
    5. />
    1. export default {
    2. data() {
    3. return {
    4. currentDate: new Date()
    5. };
    6. }
    7. }

    选择日期(年月)

    通过传入formatter函数,可以对选项文字进行格式化处理

    1. <van-datetime-picker
    2. v-model="currentDate"
    3. type="year-month"
    4. :min-date="minDate"
    5. :formatter="formatter"
    6. />
    1. export default {
    2. data() {
    3. return {
    4. currentDate: new Date()
    5. };
    6. },
    7. methods: {
    8. formatter(type, value) {
    9. if (type === 'year') {
    10. return `${value}年`;
    11. } else if (type === 'month') {
    12. return `${value}月`
    13. }
    14. return value;
    15. }
    16. }
    17. }

    选择时间

    1. <van-datetime-picker
    2. v-model="currentTime"
    3. type="time"
    4. :min-hour="10"
    5. :max-hour="20"
    6. />
    1. export default {
    2. data() {
    3. return {
    4. currentTime: '12:00'
    5. };
    6. }
    7. }

    选项过滤器

    通过传入filter函数,可以对选项数组进行过滤,实现自定义时间间隔

    1. <van-datetime-picker
    2. v-model="currentTime"
    3. type="time"
    4. :filter="filter"
    5. />
    1. export default {
    2. data() {
    3. return {
    4. currentTime: '12:00'
    5. };
    6. },
    7. methods: {
    8. filter(type, options) {
    9. if (type === 'minute') {
    10. return options.filter(option => option % 5 === 0)
    11. }
    12. return options;
    13. }
    14. }
    15. }

    API

    Props

    参数说明类型默认值版本
    type类型,可选值为 date time year-monthStringdatetime1.0.2
    min-date可选的最小时间,精确到分钟Date十年前-
    max-date可选的最大时间,精确到分钟Date十年后-
    min-hour可选的最小小时,针对 time 类型Number0-
    max-hour可选的最大小时,针对 time 类型Number23-
    min-minute可选的最小分钟,针对 time 类型Number01.1.15
    max-minute可选的最大分钟,针对 time 类型Number591.1.15
    filter选项过滤函数(type, values) => values-2.0.0
    formatter选项格式化函数(type, value) => value-1.1.14
    title顶部栏标题String''1.0.4
    show-toolbar是否显示顶部栏Booleanfalse1.0.2
    loading是否显示加载状态Booleanfalse1.0.4
    item-height选项高度Number441.0.4
    confirm-button-text确认按钮文字String确认1.0.4
    cancel-button-text取消按钮文字String取消1.0.4
    visible-item-count可见的选项个数Number51.0.4

    Events

    事件名说明回调参数
    change当值变化时触发的事件picker 实例
    confirm点击完成按钮时触发的事件当前 value
    cancel点击取消按钮时触发的事件-

    change 事件

    change事件中,可以获取到picker实例,对picker进行相应的更新等操作:

    函数说明
    getColumnValue(index)获取对应列中选中的值
    setColumnValue(index, value)设置对应列中选中的值
    getColumnValues(index)获取对应列中所有的备选值
    setColumnValues(index, values)设置对应列中所有的备选值
    getValues()获取所有列中被选中的值,返回一个数组
    setValues(values)values为一个数组,设置所有列中被选中的值

    DatetimePicker 时间选择 - 图1