首页 > 解决方案 > 日期解析月份格式

问题描述

在我的 Angular 项目中创建/测试日期适配器时,我遇到了这个问题。我想我一定是遗漏了一些约定,但是当将月份更改为 2(二月)而不是 02 之类的单个数字时,我得到了不同的一天。

Date.parse 基于不同的输出给出两个不同的输出,如下图所示。有什么想法吗?

日期解析

标签: javascriptangular

解决方案


根据文档

ECMAScript 规范规定:如果字符串不符合标准格式,则函数可能会退回到任何特定于实现的启发式或特定于实现的解析算法。

在这里,第二个字符串与预期的格式不匹配,Chrome对其进行处理。

如果您使用 Firefox 对其进行测试,则会返回相同的日期,因此这是 Chrome 的“问题”。

您可以尝试阅读 V8 的源代码以了解您为什么会得到这个以及它是如何实际实现的。

这没什么帮助,但我认为如果不深入了解 V8,您将找不到任何东西。


推荐阅读