new Date(毫秒)返回无效日期

时间:2013-06-28 18:26:06

标签: javascript date time milliseconds

我正在尝试使用javascript将毫秒转换为日期:

new Date(Milliseconds); 

构造函数,但是当我给它一个毫秒值,例如1372439683000时,它返回无效日期。如果我转到site that converts milliseconds to date,它会返回正确的日期。

任何想法为什么?

4 个答案:

答案 0 :(得分:81)

您没有使用数字,而是使用看起来像数字的字符串。根据MDN,当您将字符串传递给Date时,它需要

  

parse方法识别的格式(符合IETF的RFC 2822时间戳)。

此类字符串的一个示例是“December 17, 1995 03:24:00”,但您传入的字符串看起来像“1372439683000”,无法解析。

使用Milliseconds或一元parseInt+转换为数字:

new Date(+Milliseconds); 
new Date(parseInt(Milliseconds,10)); 

答案 1 :(得分:5)

Date函数区分大小写:

new Date(Milliseconds); 

答案 2 :(得分:1)

而不是

new date(Milliseconds); 

使用此

new Date(Milliseconds); 

您的陈述将为您提供日期未定义错误

答案 3 :(得分:0)

由于其他原因,我收到了此错误。

我从redis读取了一个键,其值为json。

client.get(someid, function(error, somevalue){});

现在我试图访问somevalue(这是一个字符串)中的字段,如somevalue.start_time,而不解析为JSON对象。 这是回归" undefined"如果传递给Date构造函数,new Date(somevalue.start_time)将返回"无效日期"。

首先使用JSON.parse(somevalue)在访问json内的字段之前获取JSON对象解决了问题。