uni-app 官方内置表单picker缺少同时可选择日期时间的类型
uni-app 官方内置表单picker缺少同时可选择日期时间的类型
需求
官方示例:
<_picker mode="date" :value="dateValue" :start="startDate" :end="endDate" @change="bindDateChange"><_view class="uni-input">{{dateValue}}</_view></_picker>
需求:目前官方内置picker在时间选择上mode类型只有“date”和"time",能不能多增加一个同时可选择日期时间类型的“dateTime”呢?
理由:
-
尽管有第三方插件可以满足,但是本人觉得官方有必要添加这个时间类型,因为开发人员重点看的是官方文档,若看了半天官方文档才发现没有这功能,是不是让开发人员对官方文档失去一点信心?
-
开发者更多想使用官方内置的内容或是官方插件,“因为官方,所以开发者信任”,也不需要花时间去查找第三方插件,看第三方插件文档,还要对比众多插件的利与弊,才去下载使用,这是一个很浪费时间极为不好的体验。
-
同时选择日期时间,如:“2020-05-15 10:30:00” 这必定是一个硬性的需求,最显著的例子:需要根据某个时间点区间精确查询(或统计)数据列表时,就必须用到。
后记:本人正着手开发的APP项目中需用到一个日期时间选择控件,去学习了官方picker,发现竟然没有此控件,因为之前用的其它UI都有同时选择日期时间的控件,心里一产生对比,心情就有点不爽了,体验很糟糕,才提了此问题。
### 表格
| 信息项 | 内容 |
|-------------|---------------|
| 开发环境 | 未提及 |
| 版本号 | 未提及 |
| 项目创建方式| 未提及 |
期待官方早日支持。
是的,我也很需要,等待中
人找资源(外包),前端,熟悉uni、vue,联系wx:Florida_kang
在uni-app中,官方内置的picker组件确实没有直接提供同时选择日期和时间的类型。为了满足这一需求,我们可以通过组合使用日期picker和时间picker来实现自定义的日期时间选择器。以下是一个简单的代码示例,展示了如何实现这一功能:
<template>
<view>
<view>
<picker mode="date" :value="date" @change="bindDateChange">
<view class="picker">{{date}}</view>
</picker>
</view>
<view v-if="showTimePicker">
<picker mode="time" :value="time" @change="bindTimeChange">
<view class="picker">{{time}}</view>
</picker>
</view>
<button @click="toggleTimePicker">选择时间</button>
</view>
</template>
<script>
export default {
data() {
return {
date: '2023-10-01', // 默认日期
time: '12:00', // 默认时间
showTimePicker: false // 控制时间picker的显示
};
},
methods: {
bindDateChange(e) {
this.date = e.detail.value;
// 重置时间picker为默认时间,当用户更改日期后可能需要重新选择时间
this.time = '12:00';
this.showTimePicker = false; // 隐藏时间picker
},
bindTimeChange(e) {
this.time = e.detail.value;
},
toggleTimePicker() {
this.showTimePicker = !this.showTimePicker;
}
}
};
</script>
<style>
.picker {
display: flex;
justify-content: center;
align-items: center;
padding: 10px;
border: 1px solid #ddd;
background-color: #fff;
margin-bottom: 10px;
}
button {
margin-top: 10px;
}
</style>
在这个示例中,我们使用了两个picker组件,一个用于选择日期,另一个用于选择时间。通过showTimePicker
变量来控制时间picker的显示与隐藏。当用户选择日期后,时间picker默认不显示,但可以通过点击“选择时间”按钮来显示。同时,当日期改变时,时间会被重置为默认值(这里设置为12:00
),以避免日期更改后时间信息的不一致。
这种方法虽然需要用户进行两步操作(先选日期再选时间),但在uni-app官方未提供直接支持日期时间同时选择的picker之前,这是一个可行且相对简单的解决方案。