示例
注意
- 所有种类和维度的日期控件,它们的展示文案是内部统一不可配置的。比如周维度下的展示文案即:2020第2周。
- 前端回显时间如果有时区要求,后端返回前端必须是时间字符串 类似 2023/9/7 23:59:59 字符串,不能传UTC 时间戳,会有时区偏移 问题!
选择年月日
PCPhonePad
<page>
<form layout="horizontal">
<item
node='date-picker'
name='date'
label='日期选择/默认'
placeholder='请选择'
/>
<item
node='date-picker'
name='date'
label='日期选择+默认值'
value='{{Date.now()}}'
placeholder='请选择'
/>
</form>
</page>
export default XPage({
})
其他日期单位
通过扩展基础的日期选择,可以选择周、月、年、季度或多个日期
PCPhonePad
<page>
<form layout="horizontal">
<item
node='date-picker'
name='multiple'
type='multiple'
label='日期多选'
placeholder='日期多选' />
<item
node='date-picker'
name='week'
type='week'
label='周'
placeholder='选择周' />
<item
node='date-picker'
name='year'
type='year'
label='年'
placeholder='选择年'
/>
<item
node='date-picker'
name='month'
type='month'
label='月'
placeholder='选择月' />
<item
node='date-picker'
name='halfyear'
type='halfyear'
label='半年'
show-now='{{false}}'
placeholder='选择半年'
/>
<item
node='date-picker'
name='quarter'
type='quarter'
label='季度'
placeholder='选择季度'
/>
</form>
</page>
export default XPage({
})
选择日期范围
可在一个选择器中便捷地选择一个时间范围
PCPhonePad
<page>
<form>
<item
node='date-picker'
name='date'
type='daterange'
label='日期范围'
value-format='yy/MM/dd'
format='yy/MM/dd'
placeholder='选择日期范围'
/>
<item
node='date-picker'
name='date'
type='daterange'
label='日期范围+默认值'
value-format='yy/MM/dd'
format='yy/MM/dd'
placeholder='选择日期范围'
value='{[Date.now(), Date.now() + 24 * 60 * 60 * 1000 * 7]}'
/>
<item
node='date-picker'
name='date'
type='daterange'
label="日期范围/带快捷选项"
value-format='yy/MM/dd'
format='yy/MM/dd'
placeholder='选择日期范围'
value='{[Date.now(), Date.now() + 24 * 60 * 60 * 1000 * 7]}'
/>
<item
node='date-picker'
name='date'
type='daterange'
label="限定可选范围"
value-format='yy/MM/dd'
format='yy/MM/dd'
placeholder='选择日期范围'
before-render="{{disabledDate}}"
/>
</form>
</page>
export default XPage({
disabledDate(date) {
const now = Date.now();
const time = date.getTime();
if (time > now && time < now + 7 * 24 * 60 * 60 * 1000) {
return false;
} else {
return true;
}
},
})
日期时间选择器
在同一个选择器里选择日期和时间
PCPhonePad
<page>
<form>
<item
node='date-picker'
name='date'
type='datetime'
label='日期和时间点'
placeholder='请选择'
/>
<item
node='date-picker'
name='date'
type='datetime'
label='日期和时间点 + 默认值'
placeholder='请选择'
value='{{Date.now()}}'
/>
<item
node='date-picker'
name='date'
type='datetimerange'
label='日期时刻范围 + 时刻默认值'
placeholder='请选择'
/>
<item
node='date-picker'
name='date'
type='datetimerange'
label='限定日期时刻 可选范围'
placeholder='请选择'
before-render="{{disabledDate}}"
/>
</form>
</page>
export default XPage({
disabledDate(date) {
const now = Date.now();
const time = date.getTime();
if (time > now && time < now + 7 * 24 * 60 * 60 * 1000) {
return false;
} else {
return true;
}
},
})
时区功能
PCPhonePad
<page>
<form>
<item
node='date-picker'
name='date'
type='datetime'
label='日期时间点'
timeZone='{{timeZone}}'
placeholder='请选择'
/>
<item
node='date-picker'
name='datetimerange'
type='datetimerange'
label='日期时间范围 '
timeZone='{{timeZone}}'
placeholder='请选择'
/>
</form>
</page>
export default XPage({
data:{
timeZone:'UTC+8'
}
})
PCPhonePad
<page>
<form>
<item
node='date-picker'
name='date'
type='datetime'
label='日期时间点-只能选择时分'
step='01:01:00'
placeholder='请选择'
/>
<item
node='date-picker'
name='date'
type='datetimerange'
label='日期时间范围-只能选择时分'
step='01:01:00'
placeholder='请选择'
/>
</form>
</page>
export default XPage({
disabledDate(date) {
const now = Date.now();
const time = date.getTime();
if (time > now && time < now + 7 * 24 * 60 * 60 * 1000) {
return false;
} else {
return true;
}
},
})
Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 | 端 | 版本 |
---|---|---|---|---|---|---|
name | 名称(原生属性) | String | -- | -- | PC/Mobile | -- |
type | 类型 | String | 见type值 | Date | PC/Mobile | -- |
onPick | 选中日期触发事件 | Function | -- | -- | PC/Mobile | -- |
default-time | 时刻的默认值 | Array<(String)> | -- | ['00:00:00', '00:00:00'] | PC/Mobile | -- |
value | 绑定值(type 为 季度 半年 不可设置) | Date / Array | -- | -- | PC | -- |
value-format | 绑定值格式(type 为 季度 半年 不可设置),注意value-format要和value 值类型对应,否则部分情况初始value值可能不显示 | String | 见format | -- | PC | -- |
format | 显示格式 | String | 见format | -- | PC | -- |
disabled | 禁用 | Boolean | -- | false | PC | -- |
placeholder | 占位符 | String | -- | -- | PC | -- |
end-placeholder | 结束日期占位 | String | 仅在type为 **-range生效 | -- | PC | -- |
shortcuts | 快捷操作 | Array<(Function({text, onClick}))> | -- | -- | PC | -- |
before-render | 设置禁用状态 | Function | -- | -- | PC | -- |
unlink-panels | 取消两个日期面板间联动 | Boolean | -- | false | PC | -- |
step | 时分秒间隔 | String | 小时步长(1-23):分钟步长(1-59):秒步长(1-59) | '01:01:01' | PC | -- |
rangeLimitDay | 可选范围最大跨度长度限制 | Number | 仅在type为 **-range生效 | - | PC | -- |
show-week-Number | 显示周信息 | Boolean | 仅在type为 week**生效 | - | PC | -- |
offsetDayOfWeek | 周第一天定义 | Number | 仅在type为 week**生效 | - | PC | -- |
lunar | 农历 | Boolean | -- | -- | PC/Mobile | -- |
selectableRange | 时分秒可选范围配置 | Array | ['06:30:00 - 20:00:00'] | -- | PC/Mobile | -- |
showNow | 显示此刻按钮 | Boolean | true/false | true | PC/Mobile | -- |
clearable | 是否显示input内的清空按钮 | Boolean | true/false | true | PC/Mobile | -- |
maxDate | 最大日期 (仅移动端生效)控制可选范围 | Date | 移动端渲染时间跨度,默认为当前时间前后2年 | - | Mobile | -- |
minDate | 最小日期(仅移动端生效)控制可选范围 | Date | 移动端渲染时间跨度,默认为当前时间前后2年 | - | Mobile | -- |
timeZone | 时区展示(仅当存在time 选择时显示) | String | 自定义字符串 | - | PC/Mobile | -- |
type
值 | 说明 | 端 |
---|---|---|
date | 默认类型 选择年月日 | PC/Mobile |
datetime | 选择年月日时分秒 | PC/Mobile |
datetime | 选择年月日时分秒 | PC/Mobile |
daterange | 选择年月日范围 | PC/Mobile |
datetimerange | 选择年月日时分秒范围 | PC/Mobile |
week | 选择某年第几周 | PC/Mobile |
weeks | 周多选 | PC |
weekrange | 选择某年第几周到第几周 | PC |
month | 选择某年某月 | PC/Mobile |
year | 选择某年 | PC/Mobile |
halfyear | 选择半年 | PC |
quarter | 选择季度 | PC |
yearrange | 选择年范围 | PC |
multiple | 多选年月日 | PC/Mobile |
Events
名称 | 说明 | 回调参数 |
---|---|---|
changed | 值改变后触发 | (value) |
format&value-format
使用format
指定输入框的格式;使用value-format
指定绑定值的格式。
默认情况下,组件接受并返回Date
对象。以下为可用的格式化字串,以 UTC 2017年1月2日 03:04:05 为例:
格式 | 含义 | 备注 | 举例 |
---|---|---|---|
yyyy | 年 | 2017 | |
M | 月 | 不补0 | 1 |
MM | 月 | 01 | |
W | 周 | 仅周选择器的 format 可用;不补0 | 1 |
WW | 周 | 仅周选择器的 format 可用 | 01 |
d | 日 | 不补0 | 2 |
dd | 日 | 02 | |
H | 小时 | 24小时制;不补0 | 3 |
HH | 小时 | 24小时制 | 03 |
h | 小时 | 12小时制,须和 A 或 a 使用;不补0 | 3 |
hh | 小时 | 12小时制,须和 A 或 a 使用 | 03 |
m | 分钟 | 不补0 | 4 |
mm | 分钟 | 04 | |
s | 秒 | 不补0 | 5 |
ss | 秒 | 05 | |
A | AM/PM | 仅 format 可用,大写 | AM |
a | am/pm | 仅 format 可用,小写 | am |
timestamp | 时间戳 | 仅 valueFormat 可用,小写 | |
[MM] | 使用[] 包裹不需要格式化字符 | 使用方括号标识不需要格式化的字符 (如 [A][MM]) | MM |