将表示毫秒的字符串转换为Date

时间:2014-05-07 13:07:42

标签: javascript jquery datetime

我试图以毫秒格式转换表示日期的字符串,如下所示:

var start = new Date(s);

然而,似乎它不起作用,因为当我试图显示日期时,我已经"无效日期"作为错误信息。

我想要的是这种格式的日期:

Wed May 07 2014 09:00:00

这可能吗?

编辑:s变量的原始值是由13个数字组成的字符串(例如:13982762900000)

3 个答案:

答案 0 :(得分:5)

将其转换为数字类型而不是字符串:

var date = new Date(parseInt(s, 10))

<强>解释

new Date()构造函数的输入是一个字符串。这意味着new Date()将假设输入是&#34; ISO8601字符串&#34; 而不是&#34;整数值表示毫秒数&#34; ,如下所述。

根据https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date,如果该值应解释为&#34;表示自1970年1月1日00:00:00 UTC(Unix Epoch)以来的毫秒数,则它应为整数。 #34;

new Date()

具有以下构造函数(根据上面的链接):

new Date();
new Date(value);
new Date(dateString);
new Date(year, month, day, hour, minute, second, millisecond);

(这是将其转换为整数值时使用的构造函数)

整数值,表示自1970年1月1日00:00:00 UTC(Unix Epoch)以来的毫秒数。

dateString (这是之前调用的构造函数)

表示日期的字符串值。该字符串应采用Date.parse()方法识别的格式(符合IETF的RFC 2822时间戳以及ISO8601的版本)。

答案 1 :(得分:3)

var date = new Date(parseInt(your_timestamp, 10));

时间戳应该有13位数。

您的示例时间戳有14位数字。这是一个错误还是时间戳实际上是错误的?

你可以:

var date = new Date(parseInt(your_timestamp, 10) / 10);

答案 2 :(得分:3)

使用parseInt将整数字符串转换为整数:

var start = new Date(parseInt(s, 10));

Live Demo


参考