Skip to content

日期选择器 DatePicker

选择日期。支持年、月、周、日类型,支持范围选择等。

基本用法

日期输入器的基础使用。


代码事例
vue
<template>
  <fk-date-picker value-format="MM-DD HH:mm:ss" style="width: 200px;" />
</template>
代码事例
vue
<template>
  <fk-range-picker
    style="width: 240px; marginBottom: 20px;"
    @change="onChange"
    @select="onSelect"
  />
  <br />
  <fk-date-picker
    style="width: 240px; margin-bottom: 20px; margin-right: 24px;"
    shortcuts-position="left"
    :shortcuts="shortcuts"
  />
  <br />
  <fk-range-picker
    style="width: 240px;"
    shortcuts-position="left"
    :shortcuts="rangeShortcuts"
  />
</template>

<script>
import dayjs from 'dayjs';

export default {
  setup() {
    return {
      dayjs,
      shortcuts: [
        {
          label: '今天',
          value: () => dayjs(),
        },
        {
          label: '昨天',
          value: () => dayjs().subtract(1, 'day')
        },
        {
          label: '最近一周',
          value: () => dayjs().add(1, 'week'),
        },
        {
          label: '最近一月',
          value: () => dayjs().add(1, 'month'),
        },
        {
          label: '最近两月',
          value: () => dayjs().add(2, 'month'),
        }
      ],
      rangeShortcuts: [
        {
          label: '今天',
          value: () => [dayjs(), dayjs()],
        },
        {
          label: '昨天',
          value: () => [dayjs().subtract(1, 'day'), dayjs().subtract(1, 'day')],
        },
        {
          label: '上周',
          value: () => [dayjs().startOf('week').subtract(7, 'day'), dayjs().endOf('week').subtract(7, 'day')],
        },
        {
          label: '上月',
          value: () => [dayjs().subtract(1, 'month').startOf('month'), dayjs().subtract(1, 'month').endOf('month')],
        },
        {
          label: '本月',
          value: () => [dayjs().startOf('month'), dayjs().endOf('month')],
        },
        {
          label: '最近7天',
          value: () => [dayjs().subtract(7 - 1, 'day'), dayjs()],
        },
        {
          label: '最近30天',
          value: () => [dayjs().subtract(30 - 1, 'day'), dayjs()],
        },
        {
          label: '最近60天',
          value: () => [dayjs().subtract(60 - 1, 'day'), dayjs()],
        },
        {
          label: '最近90天',
          value: () => [dayjs().subtract(90 - 1, 'day'), dayjs()],
        },
      ],
      onSelect(dateString, date) {
        console.log('onSelect', dateString, date);
      },
      onChange(dateString, date) {
        console.log('onChange:', dateString, date);
      },
    };
  },
}
</script>

月份选择器

月份输入器的基础使用。


代码事例
vue
<template>
  <fk-month-picker style="width: 200px;" />
</template>

年份选择器

年份输入器的基础使用。


代码事例
vue
<template>
  <fk-year-picker style="width: 200px;" />
</template>

季度选择器

季度选择器的使用。


代码事例
vue
<template>
  <fk-quarter-picker style="width: 200px;" />
</template>

周选择器

周选择器提供了一种选择星期的简单方法。也可以指定一周的起始日。


代码事例
vue
<template>
  <fk-week-picker style="width: 200px; margin: 0 24px 24px 0;" />
  <fk-week-picker
    style="width: 200px; margin: 0 24px 24px 0;"
    day-start-of-week="1"
  />
</template>

带时间的日期选择

使用 showTime 可以使用带时间的日期选择。


代码事例
vue
<template>
  <fk-date-picker
    style="width: 220px; margin: 0 24px 24px 0;"
    show-time
    :time-picker-props="{ defaultValue: '09:09:06' }"
    format="YYYY-MM-DD HH:mm:ss"
    @change="onChange"
    @select="onSelect"
    @ok="onOk"
  />
  <fk-date-picker
    style="width: 220px; margin: 0 24px 24px 0;"
    show-time
    format="YYYY-MM-DD hh:mm"
    @change="onChange"
    @select="onSelect"
    @ok="onOk"
  />
  <fk-range-picker
    style="width: 360px; margin: 0 24px 24px 0;"
    show-time
    :time-picker-props="{ defaultValue: ['00:00:00', '09:09:06'] }"
    format="YYYY-MM-DD HH:mm"
    @change="onChange"
    @select="onSelect"
    @ok="onOk"
  />
</template>
<script>
export default {
  setup() {
    function onSelect(dateString, date) {
      console.log('onSelect', dateString, date);
    }

    function onChange(dateString, date) {
      console.log('onChange: ', dateString, date);
    }

    function onOk(dateString, date) {
      console.log('onOk: ', dateString, date);
    }
    return {
      onSelect,
      onChange,
      onOk,
    };
  }
}
</script>

范围选择器

范围输入器的基础使用。


代码事例
vue
<template>
  <fk-range-picker
    @change="onChange"
    @select="onSelect"
    style="width: 254px; marginBottom: 20px;"
  />
  <br />
  <fk-range-picker
    mode="week"
    @change="onChange"
    @select="onSelect"
    style="width: 254px; marginBottom: 20px;"
  />
  <br />
  <fk-range-picker
    mode="month"
    @change="onChange"
    @select="onSelect"
    style="width: 254px; marginBottom: 20px;"
  />
  <br />
  <fk-range-picker
    mode="year"
    @change="onChange"
    @select="onSelect"
    style="width: 254px; marginBottom: 20px;"
  />
  <br />
  <fk-range-picker
    mode="quarter"
    @change="onChange"
    @select="onSelect"
    style="width: 254px; marginBottom: 20px;"
  />
  <br />
  <fk-range-picker
    showTime
    :time-picker-props="{
    defaultValue:['00:00:00','00:00:00']
    }"
    @change="onChange"
    @select="onSelect"
    style=" width: 380px; "
  />
</template>
<script>
export default {
  setup() {
    return {
      onSelect(dateString, date) {
        console.log('onSelect', dateString, date);
      },
      onChange(dateString, date) {
        console.log('onChange: ', dateString, date);
      },
    };
  },
}
</script>

默认值

日期输入器有默认值的情况。


代码事例
vue
<template>
  <fk-date-picker
    defaultValue="2019-06-03"
    @select="onSelect"
    @change="onChange"
    :style="style"
  />
  <fk-date-picker
    defaultValue="2019-06-03"
    :format="(value) => `custom format: ${dayjs(value).format('YYYY-MM-DD')}`"
    @select="onSelect"
    @change="onChange"
    :style="{ ...style, width: '240px' }"
  />
  <fk-date-picker
    showTime
    defaultValue="2019-06-03 08:00:00"
    @select="onSelect"
    @change="onChange"
    :style="style"
  />
  <fk-year-picker
    defaultValue="2019"
    @select="onSelect"
    @change="onChange"
    :style="style"
  />
  <fk-month-picker
    defaultValue="2019-06"
    @select="onSelect"
    @change="onChange"
    :style="style"
  />
  <fk-week-picker
    :defaultValue="dayjs('2019-08-02')"
    @select="onSelect"
    @change="onChange"
    :style="style"
  />
  <fk-range-picker
    showTime
    :defaultValue="['2019-08-08 00:00:00', '2019-08-18 00:00:00']"
    @select="onSelect"
    @change="onChange"
    :style="{ ...style, width: '360px' }"
  />
  <fk-range-picker
    mode="month"
    :defaultValue="['2019-08', '2020-06']"
    @select="onSelect"
    @change="onChange"
    style="width: 300px; marginBottom: 24px;"
  />
</template>
<script>
import dayjs from 'dayjs';

export default {
  setup() {
    return {
      dayjs,
      onSelect(dateString, date) {
        console.log('onSelect', dateString, date);
      },
      onChange(dateString, date) {
        console.log('onChange: ', dateString, date);
      },
      style: { width: '200px', marginBottom: '24px', marginRight: '24px' }
    }
  }
}
</script>

不可选取的时间

使用 disabledDate 可以禁用某些日期。使用 disabledTime 可以禁用时间,需要配合 showTime 使用。


代码事例
vue
<template>
  <div>
    <fk-date-picker
      style="width: 200px; margin-right: 24px; margin-bottom: 24px;"
      :disabledDate="(current) => dayjs(current).isBefore(dayjs())"
    />
    <fk-range-picker
      style="width: 360px; margin-right: 24px; margin-bottom: 24px;"
      :disabledDate="(current) => dayjs(current).isBefore(dayjs())"
    />
    <fk-date-picker
      style="width: 200px; margin-right: 24px; margin-bottom: 24px;"
      show-time
      :disabledDate="(current) => dayjs(current).isBefore(dayjs())"
      :disabledTime="getDisabledTime"
    />
    <fk-range-picker
      style="width: 360px; margin-bottom: 24px;"
      show-time
      :timePickerProps="{hideDisabledOptions: true}"
      :disabledDate="(current) => dayjs(current).isBefore(dayjs())"
      :disabledTime="getDisabledRangeTime"
    />
  </div>
</template>
<script>
import dayjs from 'dayjs';

function range(start, end) {
  const result = [];
  for (let i = start; i < end; i++) {
    result.push(i);
  }
  return result;
}

function getDisabledTime(date) {
  return {
    disabledHours: () => range(6, 24),
    disabledMinutes: () => range(30, 60),
    disabledSeconds: () => range(30, 60),
  };
}

function getDisabledRangeTime(date, type) {
  return {
    disabledHours: () => type === 'start' ? range(0, 6): range(6, 24),
    disabledMinutes: () => type === 'end' ? range(0, 30) : [31, 60],
    disabledSeconds: () => range(30, 60),
  };
}

export default {
  setup() {
    return {
      dayjs,
      getDisabledTime,
      getDisabledRangeTime,
    }
  }
}
</script>

预设时间快捷选择

使用 shortcuts 可以预设时间快捷选择。


代码事例
vue
<template>
  <fk-date-picker
    style="width: 300px; margin-bottom: 24px; margin-right: 24px;"
    :shortcuts="[
      {
        label: '2 hours later',
        value: () => dayjs().add(2, 'hour')
      },
      {
        label: 'a week later',
        value: () => dayjs().add(1, 'week'),
      },
      {
        label: 'a month later',
        value: () => dayjs().add(1, 'month'),
      },
    ]"
    show-time
  />
  <fk-month-picker
    style="width: 300px; margin-bottom: 24px; margin-right: 24px;"
    :shortcuts="[
      {
        label: 'last month',
        value: () => dayjs().subtract(1, 'month'),
      },
      {
        label: 'six months later',
        value: () => dayjs().add(6, 'month'),
      },
      {
        label: 'two years later',
        value: () => dayjs().add(2, 'year'),
      },
    ]"
  />
  <fk-range-picker
    style="width: 400px; margin-bottom: 24px; margin-right: 24px;"
    :shortcuts="[
      {
        label: 'next 7 days',
        value: () => [dayjs(), dayjs().add(1, 'week')],
      },
      {
        label: 'next 30 days',
        value: () => [dayjs(), dayjs().add(1, 'month')],
      },
      {
        label: 'next 365 days',
        value: () => [dayjs(), dayjs().add(1, 'year')],
      },
    ]"
  />
  <fk-range-picker
    mode="month"
    style="width: 300px; margin-bottom: 24px;"
    :shortcuts="[
      {
        label: 'next 6 months',
        value: () => [dayjs(), dayjs().add(6, 'month')],
      },
      {
        label: 'next 12 months',
        value: () => [dayjs(), dayjs().add(1, 'year')],
      },
      {
        label: 'next 10 years',
        value: () => [dayjs(), dayjs().add(10, 'year')],
      },
    ]"
  />
</template>
<script>
import dayjs from 'dayjs';
export default {
  setup() {
    return {
      dayjs
    }
  }
}
</script>

定制预设范围位置

使用 shortcutsPosition 可以将预设时间快捷选择放到左边、右边或者底部。


代码事例
vue
<template>
  <fk-date-picker
    style="width: 254px; margin-bottom: 20px; margin-right: 24px;"
    shortcuts-position="left"
    :shortcuts="shortcuts"
  />
  <fk-range-picker
    style="width: 300px; margin-bottom: 20px;"
    shortcuts-position="left"
    :shortcuts="rangeShortcuts"
  />
  <br />
  <fk-date-picker
    style="width: 254px; margin-right: 24px;"
    shortcuts-position="right"
    :shortcuts="shortcuts"
  />
  <fk-range-picker
    style="width: 300px;"
    shortcuts-position="right"
    :shortcuts="rangeShortcuts"
  />
</template>
<script>
import dayjs from 'dayjs';
export default {
  setup() {
    return {
      dayjs,
      shortcuts: [
        {
          label: 'yesterday',
          value: () => dayjs().subtract(1, 'day')
        },
        {
          label: 'today',
          value: () => dayjs(),
        },
        {
          label: 'a week later',
          value: () => dayjs().add(1, 'week'),
        },
        {
          label: 'a month later',
          value: () => dayjs().add(1, 'month'),
        },
        {
          label: '2 months later',
          value: () => dayjs().add(2, 'month'),
        }
      ],
      rangeShortcuts: [
        {
          label: 'next 2 days',
          value: () => [dayjs(), dayjs().add(2, 'day')],
        },
        {
          label: 'next 7 days',
          value: () => [dayjs(), dayjs().add(1, 'month')],
        },
        {
          label: 'next 30 days',
          value: () => [dayjs(), dayjs().add(1, 'month')],
        },
        {
          label: 'next 6 months',
          value: () => [dayjs(), dayjs().add(6, 'month')],
        },
        {
          label: 'next 12 months',
          value: () => [dayjs(), dayjs().add(1, 'year')],
        },
        {
          label: 'next 10 years',
          value: () => [dayjs(), dayjs().add(10, 'year')],
        }
      ]
    }
  }
}
</script>

动态控制选取范围

根据选择的值来控制选取的范围,使用 onSelect 配合 disabledDate 来实现。


代码事例
vue
<template>
  <fk-range-picker
      style="width: 300px;"
      @select="onSelect"
      @popupVisibleChange="onPopupVisibleChange"
      :disabledDate="disabledDate"
    />
</template>
<script>
export default {
  data() {
    return {
      dates: [],
    }
  },
  methods: {
    onSelect(valueString, value) {
      this.dates = value;
    },
    onPopupVisibleChange(visible) {
      if (!visible) {
        this.dates = []
      }
    },
    disabledDate(current) {
      const dates = this.dates;
      if (dates && dates.length) {
        const tooLate = dates[0] && Math.abs((new Date(current) - dates[0]) / (24 * 60 * 60 * 1000)) > 7;
        const tooEarly = dates[1] && Math.abs((new Date(current) - dates[1]) / (24 * 60 * 60 * 1000)) > 7;
        return tooEarly || tooLate;
      }
      return false;
    }
  }
}
</script>

尺寸

设置 size 可以使用四种尺寸(mini small medium large)的输入框。高度分别对应 24px、28px、32px、36px。


代码事例
vue
<template>
  <div style="margin-bottom: 20px;">
    <fk-radio-group v-model="size" type='button'>
      <fk-radio value="mini">mini</fk-radio>
      <fk-radio value="small">small</fk-radio>
      <fk-radio value="medium">medium</fk-radio>
      <fk-radio value="large">large</fk-radio>
    </fk-radio-group>
  </div>
  <fk-date-picker
    :size="size"
    style="width: 254px;"
  />
</template>
<script>
export default {
  data() {
    return {
      size: 'small'
    }
  }
}
</script>

额外的页脚

在浮层中加入额外的页脚,以满足某些定制信息的需求。


代码事例
vue
<template>
  <fk-date-picker style="width: 200px; margin-bottom: 20px">
    <template #extra>Extra footer</template>
  </fk-date-picker>
  <br />
  <fk-range-picker showTime style="width: 360px;">
    <template #extra>Extra footer</template>
  </fk-range-picker>
</template>

禁用

禁用状态。


代码事例
vue
<template>
  <fk-date-picker
    defaultValue="2020-08-08"
    disabled
    style="width: 200px; margin-bottom: 20px;"
  />
  <br />
  <fk-range-picker
    :defaultValue="['2020-08-08', '2020-08-18']"
    disabled
    style="width: 300px; margin-bottom: 20px;"
  />
  <br />
  <fk-range-picker
    :defaultValue="['2020-08-08']"
    :disabled="[true, false]"
    :disabledDate="(current) => dayjs(current).isBefore(dayjs('2020-08-08'))"
    style="width: 300px; margin-bottom: 20px;"
  />
  <br />
  <fk-range-picker
    showTime
    :defaultValue="['2020-08-08 02:02:02']"
    :disabled="[true, false]"
    style="width: 380px;"
  />
</template>
<script>
import dayjs from 'dayjs';
export default {
  setup() {
    return {
      dayjs
    };
  }
}
</script>

定制日期单元格

利用具名插槽 cell 可以定制日期单元格。


代码事例
vue
<template>
  <fk-date-picker>
    <template #cell="{ date }">
      <div class="arco-picker-date">
        <div class="arco-picker-date-value" :style="getCellStyle(date)">
          {{ date.getDate() }}
        </div>
      </div>
    </template>
  </fk-date-picker>
</template>
<script>
export default {
  setup() {
    const highlightDates = [6, 14, 22];
    const highlightStyle = {
      border: '1px solid rgb(var(--arcoblue-6))',
    };
    return {
      getCellStyle(date) {
        return highlightDates.includes(date.getDate()) ? highlightStyle : {}
      }
    }
  }
}
</script>

双向绑定

通过 v-model 实现值的双向绑定


代码事例
vue
<template>
  <fk-space>
    {{value}}
    <fk-date-picker format="MM-DD HH:mm:ss" value-format="MM-DD HH:mm:ss" v-model="value" style="width: 200px;" />
    <fk-range-picker v-model="rangeValue" style="width: 300px;" />
  </fk-space>
</template>
<script>
export default {
  data() {
    return {
      value: Date.now(),
      rangeValue: [Date.now(), Date.now()],
    }
  }
}
</script>

自定义触发元素

自定义触发元素。


代码事例
vue
<template>
  <fk-space>
    <fk-date-picker
      style="width: 268px;"
      v-model="value"
    >
      <fk-button>{{ value || '请选择日期' }}</fk-button>
    </fk-date-picker>
    <fk-range-picker
      style="width: 268px;"
      v-model="rangeValue"
    >
      <fk-button>{{ rangeValue && rangeValue.join(' - ') || '请选择日期范围' }}</fk-button>
    </fk-range-picker>
  </fk-space>
</template>
<script>
import { ref } from 'vue';
export default {
  setup() {
    const value = ref();
    const rangeValue = ref();
    return {
      value,
      rangeValue,
    }
  }
}
</script>

只使用面板

只用选择面板,不显示输入框。


代码事例
vue
<template>
  <div>
    <fk-date-picker
      default-value="2019-06-03"
      v-model:pickerValue="pickerValue"
      hide-trigger
      style="width: 268px;"
    >
      <template #cell="{ date }">
        <div class="arco-picker-date">
          <div class="arco-picker-date-value">
            {{ date.getDate() }}11
          </div>
        </div>
      </template>
    </fk-date-picker>
    <fk-range-picker
      :default-value="['2019-08-01', '2020-06-01']"
      v-model:pickerValue="rangePickerValue"
      hide-trigger
      style="width: 560px; margin-top: 20px;"
    />
  </div>
</template>
<script>
export default {
  data() {
    return {
      pickerValue: null,
      rangePickerValue: null,
    };
  }
};
</script>

API

Common Props

参数名描述类型默认值版本
locale国际化配置,用于覆盖locale中的 datePicker 字段Record<string, any>-
hide-trigger没有触发元素,只显示选择面板booleanfalse
allow-clear是否允许清除booleantrue
readonly是否为只读booleanfalse
error是否为错误状态booleanfalse
size日期选择器的尺寸'mini' | 'small' | 'medium' | 'large''medium'
shortcuts预设时间范围快捷选择ShortcutType[][]
shortcuts-position预设范围在面板上的位置,默认放在下方,侧边一般用于大量预设时间的场景'left' | 'bottom' | 'right''bottom'
position弹出的框的位置'top' | 'tl' | 'tr' | 'bottom' | 'bl' | 'br''bl'
popup-visible控制弹出框的打开或者关闭状态boolean-
default-popup-visible默认弹出框是打开或者关闭booleanfalse
trigger-props可以传入 Trigger 组件的参数TriggerProps-
unmount-on-close是否在隐藏的时候销毁DOM结构booleantrue
placeholder提示文案string-
disabled是否禁用booleanfalse
disabled-date不可选取的日期(current?: Date) => boolean-
disabled-time不可选取的时间(current: Date) => DisabledTimeProps-
picker-value (v-model)面板显示的日期Date | string | number-
default-picker-value面板默认显示的日期Date | string | number-
popup-container弹出框的挂载容器string | HTMLElement-
value-format值的格式,对 value defaultValue pickerValue defaultPickerValue 以及事件中的返回值生效,支持设置为时间戳,Date 和字符串(参考字符串解析格式)。如果没有指定,将格式化为字符串,格式同 format'timestamp' | 'Date' | string-1.0.0
preview-shortcut是否要预览快捷选择的结果booleantrue1.0.0
show-confirm-btn是否显示确认按钮,showTime = true 的时候始终显示。booleanfalse1.0.0
disabled-input是否禁止键盘输入日期booleanfalse1.0.0
abbreviation是否启用缩写booleantrue1.0.0

Common Events

事件名描述参数
change组件值发生改变value: Date | string | number | undefined
date: Date | undefined
dateString: string | undefined
select选中日期发生改变但组件值未改变value: Date | string | number
date: Date
dateString: string
popup-visible-change打开或关闭弹出框visible: boolean
ok点击确认按钮value: Date | string | number
date: Date
dateString: string
clear点击清除按钮-
select-shortcut点击快捷选项shortcut: ShortcutType
picker-value-change面板日期改变value: Date | string | number
date: Date
dateString: string

Common Slots

插槽名描述参数版本
prefix输入框前缀-1.0.0
suffix-icon输入框后缀图标-
icon-next-double双箭头往后翻页图标-
icon-prev-double双箭头往前翻页图标-
icon-next单箭头往后翻页图标-
icon-prev单箭头往前翻页图标-
cell自定义日期单元格的内容date: Date
extra额外的页脚-

<date-picker> Props

参数名描述类型默认值版本
model-value (v-model)绑定值Date | string | number-
default-value默认值Date | string | number-
format展示日期的格式,参考字符串解析格式string | ((current: Date) => string)-
day-start-of-week每周的第一天开始于周几,0 - 周日,1 - 周一,以此类推。0 | 1 | 2 | 3 | 4 | 5 | 612-6 from 2.21.0
show-time是否增加时间选择booleanfalse
time-picker-props时间显示的参数,参考 TimePickerPropsPartial<TimePickerProps>-
disabled是否禁用booleanfalse
disabled-date不可选取的日期(current?: Date) => boolean-
disabled-time不可选取的时间(current: Date) => DisabledTimeProps-
show-now-btn是否显示 showTime 时,选择当前时间的按钮booleanfalse

<month-picker> Props

参数名描述类型默认值
model-value (v-model)绑定值Date | string | number-
default-value默认值Date | string | number-
format展示日期的格式,参考字符串解析格式string'YYYY-MM'

<year-picker> Props

参数名描述类型默认值
model-value (v-model)绑定值Date | string | number-
default-value默认值Date | string | number-
format展示日期的格式,参考字符串解析格式string'YYYY'

<quarter-picker> Props

参数名描述类型默认值版本
model-value (v-model)绑定值Date | string | number-
default-value默认值Date | string | number-
format展示日期的格式,参考字符串解析格式string'YYYY-[Q]Q'
value-format值的格式,对 value defaultValue pickerValue defaultPickerValue 以及事件中的返回值生效,支持设置为时间戳,Date 和字符串(参考字符串解析格式)。string'YYYY-MM'1.0.0

<week-picker> Props

参数名描述类型默认值版本
model-value (v-model)绑定值Date | string | number-
default-value默认值Date | string | number-
format展示日期的格式,参考字符串解析格式string'gggg-wo'
value-format值的格式,对 value defaultValue pickerValue defaultPickerValue 以及事件中的返回值生效,支持设置为时间戳,Date 和字符串(参考字符串解析格式)。string'YYYY-MM-DD'1.0.0
day-start-of-week每周的第一天开始于周几,0 - 周日,1 - 周一,以此类推。0 | 1 | 2 | 3 | 4 | 5 | 602-6 from 2.21.0

<range-picker> Props

参数名描述类型默认值版本
mode范围选择器的类型'date' | 'year' | 'quarter' | 'month' | 'week''date'
model-value (v-model)绑定值(Date | string | number)[]-
default-value默认值(Date | string | number)[]-
picker-value默认面板显示的日期(Date | string | number)[]-
default-picker-value面板显示的日期(Date | string | number)[]-
disabled是否禁用boolean | boolean[]false
day-start-of-week每周的第一天开始于周几,0 - 周日,1 - 周一,以此类推。0 | 1 | 2 | 3 | 4 | 5 | 612-6 from 2.21.0
format展示日期的格式,参考字符串解析格式string-
value-format值的格式,对 value defaultValue pickerValue defaultPickerValue 以及事件中的返回值生效,支持设置为时间戳,Date 和字符串(参考字符串解析格式)。如果没有指定,将格式化为字符串,格式同 format'timestamp' | 'Date' | string-1.0.0
show-time是否增加时间选择booleanfalse
time-picker-props时间显示的参数,参考 TimePickerPropsPartial<TimePickerProps>-
placeholder提示文案string[]-
disabled-date不可选的日期(current: Date, type: 'start' | 'end') => boolean-
disabled-time不可选取的时间(current: Date, type: 'start' | 'end') => DisabledTimeProps-
separator范围选择器输入框内的分割符号string-
exchange-time时间是否会交换,默认情况下时间会影响和参与开始和结束值的排序,如果要固定时间顺序,可将其关闭。booleantrue1.0.0
disabled-input是否禁止键盘输入日期booleanfalse1.0.0
abbreviation是否启用缩写booleantrue

<range-picker> Events

事件名描述参数
change组件值发生改变value: (Date | string | number | undefined)[] | undefined
date: (Date | undefined)[] | undefined
dateString: (string | undefined)[] | undefined
select选中日期发生改变但组件值未改变value: (Date | string | number | undefined)[]
date: (Date | undefined)[]
dateString: (string | undefined)[]
popup-visible-change打开或关闭弹出框visible: boolean
ok点击确认按钮value: Date | string | number[]
date: Date[]
dateString: string[]
clear点击清除按钮-
select-shortcut点击快捷选项shortcut: ShortcutType
picker-value-change面板日期改变value: Date | string | number[]
date: Date[]
dateString: string[]

ShortcutType

参数名描述类型默认值
label选项的内容string | number | (() => VNode)-
value选项值CalendarValue | CalendarValue[] | (() => CalendarValue | CalendarValue[])-
format解析值所使用的格式,参考字符串解析格式string-

字符串解析格式

格式输出描述
YY21两位数的年份
YYYY2021四位数年份
M1-12月份,从 1 开始
MM01-12月份,两位数
MMMJan-Dec缩写的月份名称
MMMMJanuary-December完整的月份名称
D1-31月份里的一天
DD01-31月份里的一天,两位数
d0-6一周中的一天,星期天是 0
ddSu-Sa最简写的一周中一天的名称
dddSun-Sat简写的一周中一天的名称
ddddSunday-Saturday一周中一天的名称
H0-23小时
HH00-23小时,两位数
h1-12小时, 12 小时制
hh01-12小时, 12 小时制, 两位数
m0-59分钟
mm00-59分钟,两位数
s0-59
ss00-59秒,两位数
S0-9数百毫秒,一位数
SS00-99几十毫秒,两位数
SSS000-999毫秒,三位数字
Z-5:00UTC 的偏移量
ZZ-0500UTC 的偏移量,数字前面加上 0
AAM PM-
aam pm-
Do1st... 3st带序号的月份中的某天
X1410715640.579Unix 时间戳
x1410715640579Unix 毫秒时间戳

FAQ

关于 locale 字段

可以使用组件库提供的语言包配置 locale 字段。


基于 MIT 许可发布