【发布时间】:2021-01-11 03:38:34
【问题描述】:
我需要允许用户输入这样的字符串:
1m 3w 4d 22h 6m 3s
…然后将其转换为 ISO 8601 持续时间格式,如下所示:
P1M3W4DT22H6M3S
他们甚至应该被允许写更短的符号,比如:
10 天 12 小时
我什至不知道从哪里开始,而且似乎找不到任何有助于这些转换的库。我可以使用 Moment 将 from ISO 8601 持续时间格式转换,但不能 to。
建议?
我试图只删除空格,但我当然错过了T 之前的时间:
`P${duration.toUpperCase().replace(/\s/g, '')}`
【问题讨论】:
-
看起来太复杂了,但你尝试过什么?
-
不能给用户提供日期时间选择器吗?
-
我的简要说明是允许这种类型的字符串。我正在努力坚持下去,但不确定是否可行。
-
如果输入是“10m”怎么办?那是10分钟还是10个月?其次,输入中各部分的顺序是否保证是从大单元到小单元?
-
@trincot — 我不得不说分钟优先。
标签: javascript momentjs iso