Date:Salesforce 多日期与日期范围选择器
需要多少日期就单击多少,拖动选择日期范围,或添加循环模式。每个日期都保存到您的 Salesforce 记录中。
或立即在线试用 MultiDatePick,无需登录 →可用于屏幕 Flow(Screen Flow)、记录页面、应用程序页面和主页,以及 Experience Cloud 站点。五种视图,无需 Apex。
在浏览器中在线试用 MultiDatePick
公开 Salesforce 站点上的真实组件:虚构的 ACME Financial。选择日期和空闲时间段,查看状态颜色和后台管理界面。每小时重置一次。
在 Salesforce 中允许选择多个日期
标准 Salesforce 日期字段只能存一个日期。Date 组件则能存下用户选中的所有日期。
| 您的需求 | 标准日期字段 | MultiDatePick Date |
|---|---|---|
| 多个零散日期 | ✗每个日期一个字段 | ✓想单击多少天都行 |
| 开始和结束日期 | ✗手动输入两个日期 | ✓在日历上拖动选择 |
| 隔周的周一 | ✗逐个输入 | ✓一个循环模式搞定 |
| 每个日期单独的状态 | ✗做不到 | ✓按任意选项列表着色 |
| 之后修改日期 | ✗逐条编辑记录 | ✓编辑模式,直接在日历上改 |
| 用在屏幕 Flow 中 | ✗每个日期一个输入框 | ✓一个 Text 集合或范围 JSON |
单击、拖动或重复:三种选择日期的方式
一次选择中可以混用三种方式。“撤消”和“全部清除”随时一键可用。
不只是日期选择器
60 多个属性,全部点选设置。亮点如下:

状态颜色
把任意选项列表值映射为颜色。有两种状态的日期会同时显示两种颜色。

双月视图
两个月并排显示,适合长日期范围和季度规划。

编辑模式
直接在日历上批量审批、移动或删除已保存的日期。
- 悬停弹出框显示您的字段
- 屏蔽日期可来自任意对象
- 最早和最晚日期
- 最多可选日期数
- 预选日期
- 仅限指定日期可选
- 保存时选择第二个选项列表
- 自动命名记录
- 每周从周一开始
- 小、中、大
- 9 种语言
- WCAG 2.1 AA
同一批日期记录,五种视图
同样的记录,同样的保存方式。用视图设置默认视图,用可用视图提供其余视图。
哪些日子?
- 一次一个月,每天显示状态颜色
- 单击或拖动选择
- 悬停某一天查看当天记录
- 默认视图
每个日期范围持续多久?
- 日期横向展开
- 一个日期范围显示为一整条横条
- 按周或按月缩放;时间窗口由 Timeline Window (Days) 设置
这周有什么安排?
- 七天并排显示
- 日期记录显示在全天条中
- 需要时间?请用 Date Time 组件
哪些日子最忙?
- 每天记录数的热力图
- 一眼看出哪几周最拥挤
- 单击某一天打开当周
接下来有什么?
- 按日期顺序列出未来 60 天
- 用 Agenda Fields(日程字段)选择要显示的字段
- 非常适合手机或摘要面板
一个组件,五种布局。演示使用的是示例预约数据;Date 日历会用它自己的日期记录绘制同样的视图。
记录如何保存:对象与字段映射
选择一种记录形状。保存只会新增记录,绝不会删除已有记录。
| 您的子对象 | 设置项 | 示例 |
|---|---|---|
| 存储日期的对象 | 子对象 API 名称 | Trip_Date__c |
| 日期(或范围开始) | 日期字段 API 名称 | Date__c |
| 指向父记录的查找字段 | 关系字段 API 名称 | Trip__c |
| 范围结束 可选 | End Date Field API Name | End_Date__c |
| 状态选项列表 可选 | Status Field + Status Colors | Status__c、Approved:green,Pending:orange |
| 悬停详情 可选 | 悬停字段 | Name,Status__c |
| 屏蔽日期 可选 | Blocked Dates Object、Date Field、Filter Field | Holiday__c、Date__c |
无需输入 API 名称。在设置向导中,每个对象和字段都是下拉列表。
Salesforce 多日期选择器的用例
团队使用 Date 的 15 种方式。大多数在 Config Library 中都有现成配置。
带薪休假与假期申请
周一到周五保存为一个范围。Pending、Approved、Denied 一目了然。
- 日期范围
- 状态颜色
- 循环
值班轮换
一个季度内隔周的周一,单击两次即可。Primary、Backup、Swapped。
- 每 N 周
- 第 1 个到最后一个
- 加载已有记录
活动出席与报名回复
每个活动日期一条报名记录。已保存的报名会显示出来,避免重复。
- 每个日期一条
- 加载已有记录
- 状态颜色
项目里程碑与截止日期
项目记录上的里程碑和评审日期,每个都带标签。
- 双月视图
- 记录名称
设施禁用日期
标记节假日和关闭日。其他日历会自动将其置灰。
- 屏蔽日期
- 任意对象
内容发布日历
每周二和周四,一个模式搞定。移动日期即可改期。
- 循环
- 悬停弹出框
- 编辑模式
现场服务多日工作
拖动选中周一到周五,生成一条工作记录。已有工作会显示出来,防止重叠。
- 日期范围
- 加载已有记录
- 状态颜色
培训与课程报名
选择多周课程的上课日。停课的日期会置灰。
- 屏蔽日期
- 循环
订阅与续约跟踪
批量记录续约日期,并自动命名,例如“Q3 Renewal”。
- 双月视图
- 默认记录名称
审计与合规日程
整个财年每月第 1 个周一,按状态跟踪。
- 按月出现次数
- 状态颜色
设备检查与维护
每条资产记录上的检查日期,自动跳过设施关闭日。
- 记录页面
- 悬停弹出框
- 屏蔽日期
房产看房时间
房源上的开放看房日期。在您的站点上提供只读的公开日历。
- Experience Cloud
- 只读
销售区域拜访计划
每位销售代表哪几天在哪个区域,多日拜访记为一条记录。
- 日期范围
- 循环
活动场地预订日期
多日活动以及布场、撤场日都各记为一条记录。
- 日期范围
- 状态颜色
循环任务截止日期
十月的每个周三,或每月最后一个工作日。
- 循环
- 每个日期一条
放到 Lightning 页面上
记录页面、应用程序页面、主页和 Experience Cloud 页面。日期直接保存为子记录,完全不需要 Flow。
| 页面 | 您需要设置的内容 |
|---|---|
| 记录页面 | Config Name。页面上的记录自动成为父记录。 |
| 应用程序页面和主页 | Config Name 加上 Static Parent Record Id。 |
| Experience Cloud | Config Name 加上 Static Parent Record Id。开启 Show In-Component Toast。 |
| 相关记录的页面 | Parent Record Id Field:指向真正父记录的查找字段。 |
在屏幕 Flow 中选择多个日期
把 Dates 拖到屏幕上,设置 Config Name。所有复选框都来自您的设置向导配置。
| 输出 | Flow 收到什么 |
|---|---|
| Selected Dates (Output) | ISO 日期的 Text 集合:["2026-07-10","2026-07-14"] |
| Date Ranges JSON (Output) | 相邻日期合并为范围。需要开启 Output Date Ranges as JSON。 |
| Parse Date Entries from JSON | 内置 Flow 操作:把 JSON 转换为可循环处理的 fromDate / toDate 条目。 |
仅限 Flow 的设置默认关闭,需要时再开启:Required、Show Inline (No Button) 和 Output Date Ranges as JSON。完整用法见 Flow 速查表。
规格
Date 组件概览。
| 安全 | 已通过 Salesforce AppExchange 安全审查 |
| 数据 | 100% 原生:您的数据始终留在 Salesforce 中。没有外部服务器,没有外部调用 (callout)。 |
| Salesforce 版本 | Enterprise、Unlimited、Performance、Developer 和 Salesforce Platform,以及各行业云。不支持 Essentials 或 Professional。 |
| 使用位置 | 屏幕 Flow、Lightning 记录页面、应用程序页面、主页、Experience Cloud 站点 |
| 选择方式 | 单击单个日期、拖动选择日期范围、循环模式 |
| 循环模式 | 工作日、周末、自定义日期;每 N 周;每月第 1、2、3、4 次或最后一次出现 |
| 保存为 | 每个日期一条记录,或借助结束日期字段每个日期范围一条记录。保存只做新增。 |
| Flow 输出 | Selected Dates(ISO 日期的 Text 集合)、Date Ranges JSON + Parse Date Entries from JSON |
| 限制 | 最多可选日期数、最早和最晚日期、是否允许过去的日期、来自任意对象的屏蔽日期 |
| 视图 | 5 种:日历、时间轴、周、使用率、日程。另有双月布局。 |
| 语言 | 9 种:英语、西班牙语、法语、德语、意大利语、日语、印地语、巴西葡萄牙语、简体中文 |
| 属性 | 60 多个,全部点选设置。完整参考 |
| 设置 | 设置向导、Lightning App Builder 或 Flow Builder。无需 Apex。 |
| Salesforce API 版本 | 63.0 |
多日期选择器常见问题
简短作答。更多内容见常见问题页面。
Salesforce 日期字段能存多个日期吗?
不能。一个标准日期字段只能存一个日期,一对字段只能存一个范围。MultiDatePick 把用户选中的每个日期都保存为父记录的相关子记录,所以一条记录可以有任意多个日期,每个日期都有自己的状态。
如何在 LWC 中选择日期范围?
把 MultiDatePick Date 组件放到页面上,拖动选中各天即可。设置 End Date Field API Name(结束日期字段 API 名称)后,相邻的日期会保存为一条带开始和结束日期的记录,周一到周五就是一条记录,而不是五条。无需自己开发 LWC。
能在屏幕 Flow 中选择多个日期吗?
能。把 Date 组件拖到 Flow 屏幕上,设置 Config Name。Selected Dates (Output) 以 ISO 日期的 Text 集合返回每个选中的日期。开启 Output Date Ranges as JSON 后,Parse Date Entries from JSON 操作会提供可循环处理的起止日期。
用户能选择循环日期吗,比如隔周的周一?
能。“添加循环模式”按钮可在开始日期和结束日期之间选择工作日、周末或自定义日期,每 N 周重复一次,还可限定为每月第 1、2、3、4 次或最后一次出现。
能在 Experience Cloud 站点上显示公开的日期日历吗?
能。把 Date 组件放到 Experience Cloud 页面上,设置 Static Parent Record Id。将 Existing Dates Mode 设为 readonly,即可显示已保存的日期而不允许访客修改;再开启 Show In-Component Toast 来显示保存消息。
MultiDatePick Date 组件多少钱?
MultiDatePick 每用户每月 $20,30 天免费试用,无需信用卡。Date、Date Time 和 Booking 组件全部包含在内。
属性参考
按您在 App Builder 和 Flow Builder 中看到的标签排列。设置 Config Name 后,向导会自动填好所有这些属性。
全部属性参考
设置
| 配置名称(Config Name) | configName | 一个已保存的设置向导配置,会加载其他所有设置。 |
视图
| 视图(View) | view | 打开时的布局:calendar(默认)、timeline、week、utilization、agenda。 |
| 可用视图(Available Views) | availableViews | 切换器中的视图,例如 calendar,timeline,agenda。留空则提供全部五种。 |
| 时间轴窗口(天)(Timeline Window (Days)) | timelineWindowDays | 时间轴同时显示的天数。默认 14;设为 0 显示整月。 |
| 时间轴缩放(Timeline Zoom) | timelineZoom | 初始缩放:day、week(默认)或 month。 |
| Agenda Fields | agendaFields | 每个日程行上显示的额外字段。留空则沿用 Hover Popover Fields。 |
显示
| Button Label Flow | label | 打开选择器的按钮上的文字。默认为“选择日期”。 |
| Calendar Title | modalTitle | 日历顶部的标题。默认为“选择日期”。 |
| Show Inline | showInline | 日历始终可见,不显示按钮。在页面上默认开启,在 Flow 中默认关闭。 |
| Two-Month View | twoMonthView | 两个月并排显示。 |
| 日历大小(Calendar Size) | calendarSize | tiny、xsmall(Very Small)、small、medium(默认)或 large。Tiny 和 Very Small 适合实用工具栏、侧边栏和仪表板磁贴。 |
| Day Header Format | dayHeaderFormat | 3 = SUN MON,2 = SU MO,1 = S M。 |
| Week Starts on Monday | weekStartsOnMonday | 每周从周一开始,而不是周日。 |
| 显示循环模式(Show Recurring Pattern Button) | showRecurringPattern | “添加循环模式”按钮。默认开启。 |
| Show Selection Summary | showSelectedSummary | 显示所选日期的数量和范围。默认开启。 |
| Show Done Button in Inline Mode | showDoneButtonInline | 单击“完成”后日历折叠为摘要卡片。默认在 Flow 中开启,在页面上关闭。 |
| Required Flow | required | 至少选择一个日期,Flow 才能继续。 |
限制
| Max Dates Allowed | maxSelections | 用户最多可选的日期数。0 = 不限。 |
| Allow Past Dates | allowPastDates | 关闭 = 只能选今天及以后。默认开启。 |
| Earliest Selectable Date Flow | minDate | 可以选择的第一天。 |
| Latest Selectable Date Flow | maxDate | 可以选择的最后一天。 |
| Book Up To (Days Ahead) | maxDaysAhead | 滚动窗口:今天加上这么多天,每天向前推移。0 表示不限。 |
| Minimum Notice (Hours) | minNoticeHours | 不允许选择从现在起这么多小时内开始的日期。24 表示至少提前一天。 |
| Pre-Selected Dates Flow | defaultDates | 打开时已选中的日期(YYYY-MM-DD)。 |
| Blocked Dates Flow | disabledDates | 不能选择的日期,显示为灰色。 |
| Only These Dates Are Selectable Flow | availableDates | 其他日期全部禁用。适用于开庭日、课程等。 |
| Auto-Jump to First Available Date Flow | autoJumpToFirstAvailable | 打开时直接显示第一个可选日期所在的月份。 |
状态与颜色
| 状态字段(Status Field) | statusField | 为每个日期着色的选项列表或文本字段。 |
| 状态颜色(Status Colors) | statusColors | 例如 Approved:green,Pending:orange,Denied:red。可用颜色名称或十六进制代码。 |
| Status Color Display | statusColorDisplay | calendar:日期单元格采用状态颜色。 |
| Status Field Label | statusFieldLabel | 状态选择器的标签。留空则使用字段名称。 |
| Selectable Statuses (Status Picker) | selectableStatuses | 用户可以设置的值,例如公开站点上只允许 Requested。只有一个值时会隐藏选择器。 |
| Ignored Statuses | hideBookingsWithStatus | 不在日历上显示的状态,例如 Cancelled。 |
| Second Picklist Field | secondStatusField | 保存时选择的第二个选项列表,例如 Reason__c。不参与着色。 |
| Second Picklist Label | secondStatusFieldLabel | 第二个选项列表的标签。 |
| Selectable Second-Picklist Values | selectableSecondStatuses | 允许的值。只有一个值时会自动应用并隐藏。 |
| 悬停字段 | hoverFields | 悬停卡片中的字段,例如 Name,Status__c。 |
| Show In-Component Toast | showSuccessToast | 在组件内部显示保存消息。适用于 Experience Cloud。 |
| Show Add to Calendar After Saving | showAddToCalendar | 保存后提供一个 .ics 文件,每个日期一个全天事件,可用于 Outlook、Google 或 Apple 日历。 |
| Success Toast Message (optional) | successToastMessage | 自定义保存消息。 |
编辑模式
| 启用编辑模式(Enable Edit Mode) | enableEditMode | “编辑”按钮:更改状态、移动或删除已保存的日期。默认开启。 |
| Edit Button Label | editButtonLabel | “编辑”按钮的自定义文字。 |
| Edit Record Display | editRecordDisplay | 每行显示的详情,按顺序:name、status、date。默认为 name, status, time。 |
记录名称
| Record Name Field | recordNameField | 为每条记录存储名称的文本字段。 |
| Default Record Name | defaultRecordName | 例如“休假日”或“值班”。 |
| Append Date to Record Name | appendDateTimeToName | “休假日 - 2026-07-10”。默认开启。 |
保存记录
| 子对象 API 名称 | relatedObjectApiName | 保存每个日期的对象。 |
| 日期字段 API 名称 | dateFieldApiName | 该对象上的日期字段。 |
| End Date Field API Name | endDateField | 相邻日期保存为一条带开始和结束日期的记录。 |
| 关系字段 API 名称 | relationshipFieldApiName | 每条记录指向父记录的查找字段。 |
| Parent Record Id Flow | recordId | 保存到的父记录,例如 {!recordVar.Id}。留空 = 只输出,不保存。 |
| Static Parent Record Id 页面 | staticRecordId | 应用程序页面、主页和 Experience 页面使用的父记录。 |
| Parent Record Id Field | parentRecordIdField | 当页面属于另一条记录时:指向真正父记录的查找字段。 |
| Load Existing Dates | preloadExistingDates | 加载时显示已保存的日期。默认开启。 |
| Existing Dates Mode | preloadMode | editable(默认)或 readonly。 |
| 保存按钮标签(Save Button Label) | saveButtonLabel | “保存”按钮上的文字。默认为“保存”。 |
屏蔽日期对象
| Blocked Dates Object | blockedDatesSourceObject | 其日期被屏蔽的对象,例如节假日。 |
| Blocked Dates Date Field | blockedDatesDateField | 该对象上的日期字段。 |
| Blocked Dates Filter Field | blockedDatesFilterField | 指向本记录的查找字段,或用于筛选的字段。留空则对所有人屏蔽。 |
| Blocked Dates Filter Value | blockedDatesFilterValue | 筛选字段必须匹配的值,例如 Holiday。 |
Flow 输出
| Output Date Ranges as JSON Flow | outputAsJson | 填充 Date Ranges JSON (Output)。 |
| Selected Dates (Output) | selectedDates | 每个选中的日期,ISO 格式(YYYY-MM-DD)。 |
| Date Ranges JSON (Output) | selectedDateRangesJson | 相邻日期合并为 fromDate / toDate。 |