插件存在一个小错误,在创建事件时,它不会遵循用户本地的 12 小时制时间格式,而是始终显示 24 小时制时间格式。这使得不使用 24 小时制时间的用户(例如美国用户)在输入事件时感到麻烦且容易出错。
(幸运的是,事件创建后会正确显示)
除此之外,这个插件看起来很棒,谢谢 ![]()
另外,如果有一个设置可以调整事件发布者可以为事件设置的提醒数量上限,那就更好了。5 个提醒很多 ![]()
插件存在一个小错误,在创建事件时,它不会遵循用户本地的 12 小时制时间格式,而是始终显示 24 小时制时间格式。这使得不使用 24 小时制时间的用户(例如美国用户)在输入事件时感到麻烦且容易出错。
(幸运的是,事件创建后会正确显示)
除此之外,这个插件看起来很棒,谢谢 ![]()
另外,如果有一个设置可以调整事件发布者可以为事件设置的提醒数量上限,那就更好了。5 个提醒很多 ![]()
感谢您指出这一点!我在将日期/时间插入主题时也有同样的经历,这存在同样的问题。我认为这是一个已知问题,并且有其原因。输入遵循您设备的区域设置,而不是您 Discourse 首选项中设置的区域设置。但显示确实遵循您的 Discourse 区域设置首选项(以及查看包含事件或日期/时间帖子的任何用户)。您能否在您的设备上确认这一点?
对于创建事件或向帖子添加日期/时间的用户来说,如果两者相同,肯定会减少混淆,并提供更好的用户体验。
以下是一个演示。请注意下面截图中的选定时间为下午 4:00,但输入显示为 16:00。我之所以出现这种情况,是因为我将设备区域设置为德国(使用 24 小时制),而我的 Discourse 区域设置为 US-WA(使用 12 小时制)。输入似乎遵循设备区域设置。
这在 Markdown 中显示为 [date=2025-04-01 time=16:00:00 timezone="America/Los_Angeles"],对我来说正确显示为下午 4 点:2025-04-01T23:00:00Z。
将我的设备区域更改为美国可以使这两者保持一致,但这是一个繁琐的过程,需要重新启动。
当我的区域设置为美国时,我在主题中插入日期/时间时,输入时间也使用 12 小时制。Markdown 相同 [date=2025-04-01 time=16:00:00 timezone="America/Los_Angeles"],并正确显示为下午 4 点:2025-04-01T23:00:00Z。
感谢您提供详细的回复(而且还是来自同为华盛顿州的人 :))
所以,这个 bug 其实是关于“插入事件”(官方插件)的,而不是“插入日期/时间”(内置功能)。我完全理解这种混淆,因为我第一次尝试使用插件时,也点击了日期/时间而不是事件,并对为什么它没有生成事件感到困惑。
既然我们俩都对此感到困惑,那么也许有机会改进用户界面:
话虽如此,回答您的问题:
关于设备区域设置,我不在 iOS 设备上,所以我不知道这个设置在其他操作系统上对应的是什么。(我使用的是 Linux,并已验证我的 locale 返回的是所有 en_us 或 en_US.UTF-8… 但也许还有其他隐藏的设置)。您能否确认您在“插入事件”页面(而不是仅仅“插入日期/时间”)上是否看到相同的行为?它似乎在这个论坛上没有启用,所以您可能需要启动一个测试实例,不过由于这是一个官方插件,应该很容易获得。
哦,真有趣!我深入研究了如何插入日期/时间,发现行为实际上是不同的。
我刚检查了一下(我的设备仍显示在美国地区),发现你确实说对了!“添加事件”弹出窗口确实要求使用 24 小时制,尽管插入日期/时间现在使用的是 12 小时制。
插入日期/时间是一项核心功能,而“添加事件”是 calendar-and-event 插件的一部分。这些是截然不同的功能。所以,让我们在这里专注于“添加事件”弹出窗口,它似乎存在一个用户体验错误,你已经在该主题的第一个帖子中完美地记录了这一点。
改进组合菜单中的用户界面是一个完全不同的讨论。如果你想就此开启一个新话题,请随时提出。
让这两个机制不同是没有多大意义的——但我想这是另一个/单独的UX问题!
这绝对是需要的!!这是一个长期存在的问题(也许可以单独开一个#UX主题讨论)。我隐藏了插入日期/时间图标来解决这个困惑,但这意味着我们失去了那个非常有用的功能。
就像我说的……请开启新话题。我们还是先集中讨论这个 UI 错误吧。
没问题,感谢您确认添加事件弹出窗口的 bug ![]()
我以为我以前有过,但找不到。我现在就去。
Bump - 我也遇到了这个问题。
discourse-calendar 插件使用 DateTimeInputRange 元素,但 @tobiaseigen 在第一个回复中提到的 UI 使用的是 CalendarDateTimeInput 元素。
供参考,这是 DateTimeInputRange 的实现,这是 CalendarDateTimeInput 的实现。