我正在尝试使用 javascript 将毫秒转换为日期:
new Date(Milliseconds);
构造函数,但是当我给它一个毫秒值说 1372439683000 它返回无效日期。如果我去一个将毫秒转换为日期的站点,它会返回正确的日期。
任何想法为什么?
我正在尝试使用 javascript 将毫秒转换为日期:
new Date(Milliseconds);
构造函数,但是当我给它一个毫秒值说 1372439683000 它返回无效日期。如果我去一个将毫秒转换为日期的站点,它会返回正确的日期。
任何想法为什么?
您没有使用数字,而是使用看起来像数字的字符串。根据 MDN,当您将字符串传递给 时Date
,它期望
解析方法识别的格式(符合 IETF 的 RFC 2822 时间戳)。
此类字符串的一个示例是“ December 17, 1995 03:24:00
”,但您传入的字符串看起来像“ 1372439683000
”,无法解析。
使用或一元转换Milliseconds
为数字:parseInt
+
new Date(+Milliseconds);
new Date(parseInt(Milliseconds,10));
该Date
函数区分大小写:
new Date(Milliseconds);
而不是这个
new date(Milliseconds);
用这个
new Date(Milliseconds);
你的声明会给你日期未定义错误
重要的是要注意时间戳参数必须是数字,不能是字符串。
new Date(1631793000000).toLocaleString('en-GB', { timeZone: 'America/Argentina/Buenos_Aires' });
// Returns: '16/09/2021, 08:50:00'
new Date("1631793000000").toLocaleString('en-GB', { timeZone: 'America/Argentina/Buenos_Aires' });
// Returns: 'Invalid Date'
如果您将时间戳作为字符串接收,您可以简单地将其包裹在parseInt()周围:parseInt(your_ts_string)
由于不同的原因,我收到了这个错误。
我从redis中读取了一个值为json的键。
client.get(someid, function(error, somevalue){});
现在我试图访问里面的字段somevalue
(这是一个字符串),比如somevalue.start_time
,而不解析为 JSON 对象。这将返回“未定义”,如果传递给 Date 构造函数,则new Date(somevalue.start_time)
返回“无效日期”。
因此JSON.parse(somevalue)
,在访问 json 中的字段之前首先使用获取 JSON 对象解决了这个问题。