请解释这个关于Date构造函数的javascript调试器输出

时间:2013-06-18 12:21:53

标签: javascript internet-explorer parsing date cross-browser

我正在尝试实例化一个日期,以便代码可以在Chrome和IE(等)中运行。理想情况下,如果可能的话,我想找一个简单的语句而不是UDF。当时间块表示为T00:00:00时,是否无法在javascript中使用Date.parse字符串值?

这是我在Visual Studio的立即窗口中所拥有的内容; caldate包含后端数据库返回的日期的字符串表示形式;将该字符串传递给Date.parse()会返回时间戳1371441600000,并将该时间戳传递给Date()构造函数,同时返回Mon Jun 17 00:00:00 EDT 2013[prototype]: Invalid Date

?caldate
"2013-06-17T00:00:00"
?Date.parse(caldate);
1371441600000
?new Date( Date.parse(caldate) );
Mon Jun 17 00:00:00 EDT 2013
    [prototype]: Invalid Date

1 个答案:

答案 0 :(得分:1)

Invalid Date是正常的。这就是调试器为Date的proto对象打印的内容。我相信这是因为调试器调用proto对象上的toString方法而不提供实际的Date实例,因此toString方法返回"Invalid Date"

我建议你阅读MDN documentation on Date

您可以使用new Date(caldate)从字符串中创建Date