DatePicker 日期选择器
选择或输入日期,支持年、月、日期等类型,支持选择范围。
基础用法
设置属性 为 date
或 daterange
分别显示选择单日和选择范围类型。
设置属性 placement
可以更改选择器出现的方向,与 Poptip 和 Tooltip 配置一致,支持 12 个方向,详见 API。
设置属性 options
对象中的 shortcuts
可以设置快捷选项,详见示例代码。
其中 value 为函数,必须返回一个日期,如果是 daterange 类型,需要返回一个数组。
value 接收任何正确的日期格式,比如 2016-12-24 或 12/24/16 都是正确的。
<template>
<Row>
<Col span="12">
<DatePicker type="date" :options="options1" placeholder="Select date" style="width: 200px"></DatePicker>
</Col>
<Col span="12">
<DatePicker type="daterange" :options="options2" placement="bottom-end" placeholder="Select date" style="width: 200px"></DatePicker>
</Col>
</Row>
</template>
<script>
export default {
data () {
return {
options1: {
shortcuts: [
{
text: 'Today',
value () {
return new Date();
},
onClick: (picker) => {
this.$Message.info('Click today');
}
},
{
text: 'Yesterday',
value () {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24);
return date;
},
onClick: (picker) => {
this.$Message.info('Click yesterday');
}
},
{
text: 'One week',
value () {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
return date;
},
onClick: (picker) => {
this.$Message.info('Click a week ago');
}
}
]
},
options2: {
shortcuts: [
{
text: '1 week',
value () {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
return [start, end];
}
},
{
text: '1 month',
value () {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
return [start, end];
}
},
{
text: '3 months',
value () {
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
return [start, end];
}
}
]
}
}
}
}
</script>
面板不联动
开启属性 split-panels
后,左右两面板在切换年、月时不联动。
<template>
<DatePicker type="daterange" split-panels placeholder="Select date" style="width: 200px"></DatePicker>
</template>
export default {
}
</script>
开启属性 multiple
后,可以多选。
<template>
<DatePicker type="date" multiple placeholder="Select date" style="width: 300px"></DatePicker>
</template>
<script>
export default {
}
</script>
开启属性 show-week-numbers
后,可以显示星期数。
起始日期
设置属性 start-date
后,可以将默认显示的日期面板设置为指定日期。
<template>
<Row>
<Col span="12">
<DatePicker type="date" :start-date="new Date(1991, 4, 14)" placeholder="Select date" style="width: 200px"></DatePicker>
</Col>
<Col span="12">
<DatePicker type="daterange" :start-date="new Date(1991, 4, 14)" placement="bottom-end" placeholder="Select date" style="width: 200px"></DatePicker>
</Col>
</Row>
</template>
<script>
export default {
}
</script>
设置属性 format
可以改变日期的显示格式,详见 )。
注意,format 只是改变显示的格式,并非改变 value 值。
<template>
<Row>
<Col span="12">
<DatePicker :value="value1" format="yyyy年MM月dd日" type="date" placeholder="Select date" style="width: 200px"></DatePicker>
</Col>
<Col span="12">
<DatePicker :value="value2" format="yyyy/MM/dd" type="daterange" placement="bottom-end" placeholder="Select date" style="width: 200px"></DatePicker>
</Col>
</Row>
</template>
<script>
export default {
data () {
return {
value1: '2016-01-01',
value2: ['2016-01-01', '2016-02-15']
}
}
}
</script>
设置属性 type
为 datetime
或 datetimerange
可以选择时间。
设置 format 并且忽略秒,可以只设置小时和分钟维度。
<template>
<DatePicker type="datetime" placeholder="Select date and time" style="width: 200px"></DatePicker>
<br>
<DatePicker type="datetime" format="yyyy-MM-dd HH:mm" placeholder="Select date and time(Excluding seconds)" style="width: 200px"></DatePicker>
<br>
<DatePicker type="datetimerange" placeholder="Select date and time" style="width: 300px"></DatePicker>
<br>
<DatePicker type="datetimerange" format="yyyy-MM-dd HH:mm" placeholder="Select date and time(Excluding seconds)" style="width: 300px"></DatePicker>
</template>
<script>
export default {
}
</script>
年和月
设置属性 type
为 year
或 month
可以使用选择年或月的功能。
设置属性 options
对象中的 disabledDate
可以设置不可选择的日期。
disabledDate 是函数,参数为当前的日期,需要返回 Boolean 是否禁用这天。
<template>
<Row>
<Col span="12">
</Col>
<Col span="12">
<DatePicker type="date" :options="options4" placeholder="Select date" style="width: 200px"></DatePicker>
</Col>
</Row>
</template>
<script>
export default {
data () {
return {
options3: {
disabledDate (date) {
return date && date.valueOf() < Date.now() - 86400000;
}
},
disabledDate (date) {
const disabledDay = date.getDate();
return disabledDay === 15;
}
}
}
}
}
</script>
带有确认操作
设置属性 confirm
,选择日期后,选择器不会主动关闭,需用户确认后才可关闭。
确认按钮并没有影响日期的正常选择。
<template>
<Row>
<Col span="12">
<DatePicker type="date" confirm placeholder="Select date" style="width: 200px"></DatePicker>
</Col>
<Col span="12">
<DatePicker type="daterange" confirm placement="bottom-end" placeholder="Select date" style="width: 200px"></DatePicker>
</Col>
</Row>
</template>
<script>
export default {
}
</script>
对于一些定制化的场景,可以使用 slot 配合参数 open
及事件来手动控制组件的显示状态,详见示例和 API。
<template>
<DatePicker
:open="open"
:value="value3"
confirm
type="date"
@on-change="handleChange"
@on-clear="handleClear"
@on-ok="handleOk">
<a href="javascript:void(0)" @click="handleClick">
<Icon type="ios-calendar-outline"></Icon>
<template v-if="value3 === ''">Select date</template>
<template v-else>{{ value3 }}</template>
</a>
</DatePicker>
</template>
<script>
export default {
data () {
return {
open: false,
value3: ''
}
},
methods: {
handleClick () {
this.open = !this.open;
},
handleChange (date) {
this.value3 = date;
},
handleClear () {
this.open = false;
},
handleOk () {
this.open = false;
}
}
}
尺寸
通过设置属性 size
为 large
或 small
可以调整选择器尺寸为大或小,默认不填为中。
选择器额外配置