我正在尝试使用javascript将毫秒转换为日期:
new Date(Milliseconds);
构造函数,但是当我给它一个毫秒值,例如1372439683000时,它返回无效日期。如果我转到site that converts milliseconds to date,它会返回正确的日期。
任何想法为什么?
答案 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对象解决了问题。