Moment: 使用 h:m:s 格式解析时,00:00:00 不应等于 12:00:00

创建于 2012-01-06  ·  4评论  ·  资料来源: moment/moment

这些似乎是错误的结果 - 我做错了什么吗?

时刻('12:00:00', 'hh:mm:ss').format('hh:mm:ss'); // "12:00:00"
时刻('00:00:00', 'hh:mm:ss').format('hh:mm:ss'); // "12:00:00"(好像不正确)

时刻('12:30:00', 'hh:mm:ss').format('hh:mm:ss'); // "12:30:00"
时刻('00:30:00', 'hh:mm:ss').format('hh:mm:ss'); // "12:30:00"(好像不正确)

最有用的评论

您应该使用HH:mm:ss而不是hh:mm:ss以获得 24 小时制。

但是,似乎确实存在错误。 0 点钟不是 12 小时制中的有效小时。 不过,我不确定在这种情况下所需的行为是什么。 如果是 0 点,您似乎不会收到错误消息。

所有4条评论

您应该使用HH:mm:ss而不是hh:mm:ss以获得 24 小时制。

但是,似乎确实存在错误。 0 点钟不是 12 小时制中的有效小时。 不过,我不确定在这种情况下所需的行为是什么。 如果是 0 点,您似乎不会收到错误消息。

酷,谢谢回复。 我改用 HH 但似乎仍然遇到问题,至少在 Chrome 中是这样:

时刻('12:00:00', 'HH:mm:ss').format('HH:mm:ss'); // "00:00:00"(不正确?)
时刻('00:00:00', 'HH:mm:ss').format('HH:mm:ss'); // "00:00:00"(正确的行为)

默认情况下, HHhh以 24 小时制解析小时数。 为了在 12 小时内解析,您需要添加“am”或“pm”。

原来的帖子是正确的。 如果将a到格式字符串,您可以看到这一点。

moment('12:00:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:00:00 pm"
moment('00:00:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:00:00 am"

moment('12:30:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:30:00 pm"
moment('00:30:00', 'hh:mm:ss').format('hh:mm:ss a'); // "12:30:00 am"

我相信下面的问题是一个已知问题,已修复。 它是由 #74 中的提交引起的,并在 #92 中修复。 不过,我正在为其添加单元测试。 我也会澄清文档。

moment('12:00:00', 'HH:mm:ss').format('HH:mm:ss'); // "00:00:00"

如果您使用的是 1.2.0,您应该升级到 1.3.0,因为那是在引入错误修复时。

酷,听起来不错。 谢谢!

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

danieljsinclair picture danieljsinclair  ·  3评论

paulyoung picture paulyoung  ·  3评论

alvarotrigo picture alvarotrigo  ·  3评论

Shoroh picture Shoroh  ·  3评论

dogukankotan picture dogukankotan  ·  3评论