我试图以毫秒格式转换表示日期的字符串,如下所示:
var start = new Date(s);
然而,似乎它不起作用,因为当我试图显示日期时,我已经"无效日期"作为错误信息。
我想要的是这种格式的日期:
Wed May 07 2014 09:00:00
这可能吗?
编辑:s变量的原始值是由13个数字组成的字符串(例如:13982762900000)
答案 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)