插入日期/时间工具,\T\Z 为 zz

编辑器窗口
使用上方按钮打开日历工具
高级模式

说明中提到使用 \T\Z 来显示时区

但实际发生的情况如下:

LLLL \T\Z 显示为:

Tuesday, August 25, 1987 1:00 AM TZ

LLLL TZ 显示为:

Tuesday, August 25, 1987 1:00 AM T+00:00

LLLL ZZ 显示为:

Tuesday, August 25, 1987 1:00 AM +0000

LLLL zz 则显示为文本所暗示的实际效果:

Tuesday, August 25, 1987 1:00 AM Coordinated Universal Time

(我是通过点击帮助图标并翻阅一份不为普通终端用户设计的复杂技术文档才弄清楚的,别误会,我很喜欢这类技术文档!)

我不确定这是程序错误还是文本表述不够清晰。但作为终端用户,如果在日历界面上直接告知我应使用 zz,将会非常有用。

2 个赞

z 和 zz 似乎已被弃用,只有在指定时区时才能工作(所以这里应该可以工作:思考)。但你说得对,\T\Z 看起来像是个拼写错误,不确定为什么会有 \,也许 T 和 Z 之间应该有个空格,或者根本没有 T?

如果我的理解正确,日期总是根据用户的时区设置显示:
https://your.domain/u/my/preferences/profile
悬停时会显示系统的时区:
https://your.domain/admin/site_settings/category/all_results?filter=timezone

1 个赞

对此有什么想法吗,@j.jaffeux

1 个赞

嗯,我本来敢肯定已经从描述中移除了时区(TZ),它确实不再受支持了,我明天会澄清这一点。

2 个赞

所以我做了一个非常简单的更改:

让我更详细地解释一下您之前做法的原因。确实,zz 和 Z 与您想实现的效果类似,但 TZ 是我添加的一个特殊标记,它允许使用时区城市名称来显示时区,我认为这对一些不太熟悉时区的用户来说更清晰。

格式是 \T\Z 而不是 TZ,因为这是一个特殊标记,需要进行转义,以防止 moment 尝试替换 Z(这就是您在第二个示例中看到的情况,您使用了 LLLL TZ,结果得到了 T+01:00)。

几个月前,我决定移除这个功能,以避免支持非标准内容。但我猜我漏掉了这个实例,因为它在语言包文件中被转义了两次:\\T\\Z,而我可能在使用单次转义的查询进行 grep 时未能匹配到。

最后,zz 和 Z 并未被弃用;它们只是从 core moment 中移除了,但在 moment-timezone 中仍然广泛存在,因此您可以安全地使用它们:+1:

5 个赞

我似乎无法让格式正常工作::tired_face:

[date=2020-08-26 time=18:05:00 format="zz" timezone="Europe/Paris"]
Coordinated Universal Time
[date=2020-08-26 time=18:05:00 format="LLLL" timezone="Europe/Paris"]
Wednesday, August 26, 2020 4:05 PM

由于我在使用法语区域设置进行测试,格式引号的问题与时区引号的问题相同(the timezone one)(因此德语中可能也存在同样的问题)。

时区在日历模式下不生效(因为很明显使用的是您的时区),即昨天、今天和明天。

Friday, September 25, 2020 10:00 PM +00:00 (Coordinated Universal Time)

[date=2020-09-26 timezone="Europe/Paris" format="LLLL Z (zz)"]

您可以将其禁用:

Tuesday, August 25, 2020 10:00 PM +00:00 (Coordinated Universal Time)

[date=2020-08-26 timezone="Europe/Paris" format="LLLL Z (zz)" calendar="false"]

3 个赞

那么我现在就在 try.discourse:sweat_smile:

2 个赞

此主题在最后一次回复后 2 天自动关闭。不再允许新回复。