Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >18. 精读《设计完美的日期选择器》

18. 精读《设计完美的日期选择器》

作者头像
黄子毅
发布于 2022-03-14 07:49:55
发布于 2022-03-14 07:49:55
1.5K0
举报
文章被收录于专栏:前端精读评论前端精读评论

1. 摘要

日期选择器作为基础组件重要不可或缺的一员,大家已经快习惯它一成不变的样子,输入框+日期选择弹出层。但到业务中,这种墨守成规的样子真的能百分百契合业务需求吗。这篇文章从多个网站的日期选择场景出发,企图归纳出日期选择器的最佳实践。这篇文章对移动端的日期选择暂无涉猎,都是PC端,列举出通用场景,每个类型日期选择器需要考虑的设计。 文章链接:Designing The Perfect Date And Time Picker 感谢本期评论官 @黄子毅 @流形 @王亮 @赵阳 @不知名的花瓣工程师

2. 设计原则

2.1 通用设计

1)明确需求,是实现日期选择、日期区间选择、时间选择

2)用户选中日期后是否需要自动触发下一步?尤其是在某些固定业务流程中

3)日期选择器是否是最佳的日期选择方法?如果提供预定义的日期选择按钮是不是更快呢?

4)如何避免展示不可用日期?

5)是否需要根据上下文自动定位? 适用于生日选择场景。

2.2 输入框设计

1)用户是否可以自定义输入日期,还是只能通过点击选择程序给出的日期?有时候直接输入的效率明显高于点击选择,在很多银行流水查询的场景中就提供自定义输入。

2)用户自定义输入如何保证日期格式正确性?

3)是否需要提供预设场景输入? 比如昨天,三天前,七天前,30天前?像很多数据分析场景,分析师会关注数据周期,比如流量的周环比,月环比,年环比。

4)是否需要包含默认值?如果有默认,应该是什么?像google flight 根据用户历史数据提供默认值,临近节假日默认填充节假日。同时像有些数据场景,数据存在延迟,需要默认提供T-1/T-2 ,避免用户选择当天。

5)当用户激活输入框时,是否保留默认值?

6)是否提供重置按钮?

7)是否提供『前一项』『现在』『后一项』导航?这个设计点我第一次看到,专门附图说明。

2.3 日期弹出层设计

1)理想状态下,任何日期选择都应该在三步之内完成

2)日期选择弹出层的触发方式? 是点输入框就还是点日期小图标?

3)默认情况下,展示多少周、月、天?

4)周的定义是周一到周日 还是 周日到周六?

5)如何提示当前时间和当前时间?

6)是否需要提供『前一项』『现在』『后一项』导航?如果提供,选择天、月、年的场景下如何展示?

7)提示用户最关心的信息,比如 价格、公共假期,可采用背景色、点标记

8)是否用户点击非弹出层自动关闭弹出层?是否需要提供关闭按钮?

9)是否可以不和输入框联动?

10)用户可以重置选中的日期吗?

2.4 日期区间设计

1)理想状态下,任何日期区间选择需要在六步之内完成

2)用户选中后是否立刻做背景色提示?

3)当用户选择时,区间是否需要随着用户动作改变?比如用户hover时,动态改变选中区间。

4)是否提供快捷键切换 日、月、年选择?

5)是分成两个日期选择器还是采用区间形式?

6)如何去除某些特殊时间点? 比如春节、节假日。

2.5 时间选择设计

1)最简单的方法是竖直的日期,水平的时间选择

2)更有用的是先提供日期还是时间选择? 时间选择可以作为一个过滤项,移除某些不可用的日期,这个也很有用。

3)提供最常使用的时间片段,并提供快捷键选择。

3. 文章中亮点设计

3.1 google flight

这个案例在最小的范围内提供用户找出最优选择。虽然第一眼看到这个方法,我懵了一秒,但仔细一看发现这种展现方法完美的给出了各种组合。

3.2 春夏秋冬

这个案例另辟蹊径增加了季节的概念,在某些旅游、机票类业务场景季节是非常必要的概念,提供超出月更粗粒度的日期范围选择。

3.3 枚举选择时间

使用一系列的按钮代替时间选择器,比如像我们的作息时间表,大部分是把时间划分成有规律的时间段供用户选择,固化用户选择。

3.4 对话式交互

采用与用户交互的方式选择日期,如果今后应用上AI,单纯的日期选择器是不是会消失不见呢?..

3.5 特殊标识周末

在机票、旅行场景中,周末是大家最有可能出行的时间点,采用竖线划分的方式着重标注提醒。

4. 总结

总得来说,日期选择器是一个业务组件,虽然现有很多组件库把它纳入UI基础组件。但在每个不通的业务场景和需求下的展现形式、交互都会有所有不同。首先一定一定要明确确定需要日期选择器的场景,尤其是与日期强关联的业务,比如机票定价、日程安排,结合到日期选择器中更直观,提高用户对信息的检索效率。满足用户需求场景的同时,尽量减少用户操作链路。

看到最后点个赞呗,给你比小心心 ❤ ~~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端精读评论 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【愚公系列】《循序渐进Vue.js 3.x前端开发实践》048-Element Plus选择器组件示例
在构建现代化 web 应用时,选择器组件无疑是与用户交互的重要工具。无论是单一选择、多个选择,还是复杂的层级选择,选择器都能够帮助用户高效地从大量选项中做出决策。Element Plus 作为一款专为 Vue 3 设计的 UI 组件库,提供了一系列功能强大且灵活的选择器组件,让开发者能够轻松实现多样化的选择需求。
愚公搬代码
2025/06/02
160
【愚公系列】《循序渐进Vue.js 3.x前端开发实践》048-Element Plus选择器组件示例
日期选择器DatePicker和时间选择器TimePicker
在实际开发中,经常会遇见一些时间选择器、日期选择器、数字选择器等需求,那么从本期开始来学习Android中常用选择器,今天学习的是DatePicker和TimePicker。 一、DatePicker DatePicker是一个比较简单的组件,从FrameLayout派生而来,供用户选择日期。其在FrameLayout的基础上提供了一些方法来获取当前用户所选择的日期,如果程序需要获取用户选择的日期则可通过为DatePicker添加 OnDateChangedListener 进行监听来实现。
分享达人秀
2018/02/05
5.6K0
日期选择器DatePicker和时间选择器TimePicker
Datepicker日期选择器插件
这个插件还是比较简单的,而且样式也比较漂亮,可以自定义选择年月日、年月日时分、年月、时间段选择等等。
从入门到进错门
2018/08/21
4.1K0
Datepicker日期选择器插件
简单清爽的 PowerBI 单日期选择器
上述案例反应了用户选择了一个日期,然后所有的数据计算以该日期为基准,只显示最近 X 天的,X 由滑竿切片器给定。
BI佐罗
2019/12/10
4.9K0
简单清爽的 PowerBI 单日期选择器
React 日期选择器 Date Picker
在现代 Web 应用中,日期选择器(Date Picker)是一个非常常见的组件,用于让用户方便地选择日期。React 生态系统中有许多优秀的日期选择器库,如 react-datepicker 和 antd。本文将从基础开始,逐步深入介绍如何在 React 应用中使用日期选择器,并探讨常见的问题、易错点及如何避免。
Jimaks
2024/12/03
5320
React 日期选择器 Date Picker
日期控件laydate
首先,需要引入LayDate库的JavaScript文件。可以通过将文件下载到本地并引用。
堕落飞鸟
2023/05/18
1.7K0
基于Flutter手把手教你实现一个日期选择(日历形式)
今天的主题是,在flutter里面实现一个日期选择的自定义控件,或者说自定义组件,考虑到这个日期自定义组件的通用性,我们将会采用插件开发开始来做,这样就可以发布到 pub.dev 上,供广大flutter开发者用(虽然别人不一定会用哈,但是我们要对自己有一个小小的要求不是嘛!)
老码小张
2023/11/14
2.9K0
基于Flutter手把手教你实现一个日期选择(日历形式)
ElementUI的DatePicker多个日期选择器默认没有选中样式的问题
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/caomage/article/details/83588316
从入门到进错门
2018/12/05
11.4K2
ElementUI的DatePicker多个日期选择器默认没有选中样式的问题
Flutter中的日期、格式化日期、日期选择器组件在
所谓时间戳,是指自格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
拉维
2019/08/29
27.2K0
Flutter中的日期、格式化日期、日期选择器组件在
Android基于wheelView的自定义日期选择器(可拓展样式)
主要方法: setAdapter(new StringWheelAdapter(dateList, 7)); //设置Adapter setVisibleItems(3); //设置显示几行数据 setCyclic(true); //设置是否循环显示数据 addChangingListener(onDaysChangedListener) //设置滑动监听器
张拭心 shixinzhang
2022/05/06
3.1K0
Android基于wheelView的自定义日期选择器(可拓展样式)
JavaScript 日期选择器 Pikaday 简介和使用
用的最多的日期选择器的 JavaScript 库是基于 jQuery UI 的,但是这样的库在文件大小上是非常大的(压缩和最小化之后都还有50多K),这样是不太适合一些项目的。而今天介绍的 Pikaday 是一个非常简洁但是功能完善,并且样子还算不错的 JavaScript 库。
Denis
2023/04/14
2.1K0
JavaScript  日期选择器 Pikaday 简介和使用
vue的 DatePicker 日期选择器,把选择的日期转化成需要格式传值
vue-element-admin一个基于 vue2.0 和 Eelement 的控制面板 UI 框架,这是使用vue技术栈开发的前端程序员的首选管理系统模板,模板以及非常的成熟了,并且有相关的社区和维护人员,开发时候遇到问题也不要慌。
王小婷
2021/05/17
6.3K0
vue的 DatePicker 日期选择器,把选择的日期转化成需要格式传值
JavaScript 日期选择器 Pikaday 的高级用法
我前面介绍了轻量级的 JavaScript 日期选择器 Pikaday 和其简单的用法,但是在使用当中发现有几个限制:
Denis
2023/04/15
1.4K0
uni-app日期选择器
首先是这个picker选择器,mode选择日期,end是写一个范围前日期,:end就是这个日期是动态变化的,还有change函数
叶茂林
2023/08/13
1.7K0
uni-app日期选择器
如何自定义 Android 日期选择器,实现各种个性化的效果?
在 Android 应用程序开发中,日期选择器是一个非常重要的组件,它允许用户选择日期或者时间。在标准的 Android 库中,已经提供了 DatePicker 和 TimePicker 这两个组件来实现这个功能。然而,有时候我们需要更加自由度的定制日期选择器来满足特定的业务需求。本文将介绍如何自定义 Android 日期选择器,实现各种个性化的效果。
网络技术联盟站
2023/06/04
5.9K0
vue + antd vue + moment 日期选择器,选择范围限制
用户4396583
2024/07/24
4280
2 Elment Ui 日期选择器 格式化问题
下面以我这边为例 后端使用的是springboot 默认集成了jackjson 可以配置 就能实现序列化时间啦
用户7630333
2023/12/07
2420
2 Elment Ui 日期选择器 格式化问题
ElementUI的DatePicker(日期选择器)限定范围的玩法
1.ElementUI的DatePicker(日期选择器)时间范围只能在一个月 效果 222 代码 <template> <div class="page"> <el-date-pic
治电小白菜
2020/08/25
5.4K0
ElementUI的DatePicker(日期选择器)限定范围的玩法
element 的 Cascader 级联选择器设定默认值
发现在很多的CRM管理系统里面,都有不少页面是用到这种级联选择器的,确实,功能很实用,
wuxiexy
2020/05/25
6.3K0
微信小程序日期选择器显示当前系统年月日时分
话不多说,记录一下这个框架的使用~小程序使用轻量、可靠的小程序 UI 组件库 vant-weapp Github源码:https://github.com/youzan/vant-weapp 中文文档:https://youzan.github.io/vant-weapp/#/intro
王小婷
2021/06/29
3.2K0
推荐阅读
相关推荐
【愚公系列】《循序渐进Vue.js 3.x前端开发实践》048-Element Plus选择器组件示例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档