javascript - new Date(Date.parse(string)) 和 new Date(string) 之间有哪些技术差异?

标签 javascript string date

给定以下标准化日期字符串:

var dateString = "2010-12-23T23:12:00";

我可以使用以下代码片段之一来解析它:

示例 1:

var date = new Date(dateString);

示例 2:

var date = new Date(Date.parse(dateString));
<小时/>

根据this answer ,只有当字符串的格式为 YYYY-MM-DDTHH:mm:ss.sssZ 时,日期解析才是明确定义的。但是,如果字符串采用这种格式,我想这两个示例将始终返回完全相同的结果。

这两种从标准化日期字符串创建日期对象的方法之间有什么技术差异,它们是否会返回不同的结果?

最佳答案

我写完这个问题后不久就找到了答案。根据 ECMAScript 语言规范,对于字符串参数,这两种方法将在符合标准的浏览器中产生相同的结果。

来自ECMAScript Language Specification :

15.9.3.2 新日期(值):

  1. Call ToPrimitive(value).

  2. If Type(Result(1)) is String, then go to step 5.

...

  1. Parse Result(1) as a date, in exactly the same manner as for the parse method (15.9.4.2); let V be the time value for this date.

当调用 new Date(string) 时,它会以与 Date.parse(string) 完全相同的方式解析字符串。因此,通过调用 new Date(Date.parse(string)) 我们得到与 new Date(string) 完全相同的结果,但代价是额外的方法调用的性能成本.

关于javascript - new Date(Date.parse(string)) 和 new Date(string) 之间有哪些技术差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32150233/

相关文章:

javascript - 监听不同元素上的多个触发事件后触发函数

javascript - 如何检索树面板的节点?

c++ - 如何在以前读取的行中找到一些单词并在输出中删除它 - c++中的读/写字符串

php - 使用 $match 使用 PHP MongoDB 聚合框架按日期过滤

c# - 使用 C# 将系统日期转换为 M/d/yyyy 格式,而不管系统格式如何

javascript - 如何在 JqueryUI 对话框关闭时执行回调

javascript - 从 DOM 元素集合中获取最高高度值

java 字符串与 mysql 字符串

java - 单行字符串连接的速度差异

date - 一天内发生的提交的 SVN 日志显示