1

我正在尝试让 moment.js 验证(严格模式)用户输入的带有时区的日期/时间。例子:

moment("2018-01-20 06:30 PDT", "YYYY-MM-DD HH:mm Z", true).isValid();

这将返回 false,尽管用户输入的值对我的目的有效。如果我取消时区和“Z”令牌,它可以按预期进行验证。

我检查了似乎最相关的 SO 帖子,但结果是空的。我会很感激任何提示。对于这个用例,我是否需要以某种形式使用 moment.tz?提前非常感谢。

编辑:澄清一下,“2018-01-20 06:30 PDT”是用户手动输入的内容,“yyyy-MM-dd HH:mm z”是应用程序所需的(ISO 8601?)日期/时间格式,我们将这些令牌按摩到“YYYY-MM-DD HH:mm Z”以传递给moment.js进行验证。

4

1 回答 1

0

要使其工作而不是PDT,您可以提供时区偏移量,即-0700示例 -

moment("2018-01-20 06:30 -0700", "YYYY-MM-DD HH:mm Z", true).isValid();

有关更多详细信息,请参阅 - https://momentjs.com/docs/#/parsing/string-format

于 2020-11-16T11:42:15.957 回答