是否可以创建一个松弛的日期时间选择器元素?

Is it possible to create a slack datetime picker element?

我需要我的 slack bot 来支持用户输入日期和时间,我知道有 DatePicker 可以输入特定日期。但我也需要时间,我正在考虑使用文本字段来输入字符串,但用户每次都必须处理格式问题,这很烦人。 有一个更好的方法吗?还是可以自己制作日期时间选择器?

编辑: 用户可以输入任何特定时间,任何小时或分钟。

Slack API 目前只提供日期选择器,不提供日期时间选择器。

但是,您可以自己创建一个日期时间选择器:组合一个包含所有时间选项的 date picker element with a static select menu 元素,瞧,您就有了一个日期时间选择器。

这在 Modal 中最容易实现,因为这允许用户同时为多个元素设置值。

这里有一个 block-kit 的例子。根据时间值的粒度,您可能希望以编程方式生成选项列表。

如果您需要提供更精细的输入,比如精确到分钟,那么我建议放置两个 select:

  • 小时第一位 (00 - 23)
  • 第二分钟 (00 - 59)

这是更新后的 block-kit example 外观。

这是示例的屏幕截图:

如果您需要,请继续阅读。

select 元素允许的最大选项数是 100,所以这可行。

Slack 现在有一个时间选择器:https://api.slack.com/reference/block-kit/block-elements#timepicker

此元素的下拉部分按小时对时间进行分组。该元素还提供了文本输入功能,因此您可以设置精确的时间(例如 5:42 PM)。

这可以用作附件或独立元素。该文档概述了如何将其用作附件。要将其用作元素,您需要将其放入块的“元素”部分:

        {
            "type": "timepicker",
            "action_id": "some action id you define",
            "initial_time": "2020-10-09",
            "placeholder": {
                "type": "plain_text",
                "text": "This is a datepicker!",
                "emoji": true
            }
        }