返回术语

界面图鉴

日期选择器Date Picker

你可能会问

日期选择器到底是什么?是一个日历,还是一种输入框?

馆长说,简单来说

点开日历选一天或一段日期,把「哪天」填进表单;常见于预约、出行和报表筛选。

01 · 拆开看看

这一块由什么组成

Picker 是「选择器」:日历不只是用来看的,还负责把选中的日期交给表单。它可以点开才出现,也可以直接铺在页面上。下面以 2026 年 9 月为例,演示当天为 10 日、选中 17 日:

  1. 日期入口Date Field

    有明确标签的日期框,显示所选日期;日历图标提示可以展开选择。

  2. 月份导航Month Navigation

    显示当前年月,左右翻月;选生日等较远日期时,应支持快速切换年份。

  3. 日期网格Calendar Grid

    星期标题加日期格,让人按周定位;一周从哪天开始要符合地区习惯。

  4. 日期状态Date States

    今天、已选中、不可选要能区分:图中 10 日描边、17 日填色、过去日期淡化并划线。

  5. 快捷操作Quick Actions

    可按需提供「今天」「清空」或确认按钮;是否立即提交要保持一致。

02 · 常见变体

同一个零件,几种摆法

单日选择

从弹出的月历里选一天,适合预约日期、截止日期等单个值。

日期范围

选择开始和结束日期,连起一段区间,适合报表筛选和出行日期。

内嵌日历

月历直接铺在页面里,不需要先展开,适合日期选择是主要任务的预约页。

03 · 火眼金睛

这个出行表单里,哪一块是 Date Picker?

下面是示意界面,点整块控件来辨认:谁在选择日期,谁只是在选地点或时间?

点一块试试,看看它叫什么

04 · 用与不用

什么时候该上它

适合
  • 预约、出发或截止日期,需要看清星期和可选日期
  • 报表筛选、住宿等需要选择起止日期的任务
  • 需要禁止过去日期或限制可预约范围的表单
先别用
  • 只选几点几分——用 Time Picker
  • 只展示日程、不需要填写日期——用日历视图
  • 输入生日却只能逐月翻几十年——改用直接输入或快捷选年

05 · 想一想

一道题,检查眼力

报表需要筛选「9 月 14 日到 18 日」的数据,怎样让用户选得清楚又不容易出错?

06 · 说给 AI 听

让 AI 改它时,这样说

说清单日还是范围、默认值、可选区间、日期格式和确认方式;别只说「放一个日历」。

给预约表单加一个 date picker,标签写「预约日期」,只允许选今天及以后,选中后回填日期

报表筛选改成 date range picker,标明开始和结束日期,结束不能早于开始,范围包含结束日

生日字段的 date picker 支持直接输入 YYYY-MM-DD 和快速选年,输入无效日期时给出明确提示

手机上使用原生日期选择器;这里保存的是日期而非时间点,统一存 YYYY-MM-DD,不做时区转换

老师提醒

最容易踩的坑

日期不等于时间点:生日等纯日期不要因时区换算偏移一天。原生 input type="date" 的外观随浏览器和地区变化;自定义日历还要支持键盘选日、焦点返回和可读的完整日期,不能只做一个能用鼠标点的网格。

⌘K搜索知识库

最近收录

正在载入知识索引…