我正在尝试转换一个以毫秒格式表示日期的字符串,如下所示:
var start = new Date(s);
但是,它似乎不起作用,因为当我尝试显示日期时,出现“无效日期”错误消息。
我想要得到的是这种格式的日期:
Wed May 07 2014 09:00:00
这可以做到吗?
编辑:s变量的原始值是由13个数字组成的字符串(例如:13982762900000)
最佳答案
将其转换为数字类型而不是字符串:
var date = new Date(parseInt(s, 10))
说明:
new Date() 构造函数的输入是一个字符串。这意味着 new Date()
将假定输入是“ISO8601 字符串”,而不是“表示毫秒数的整数值”,如下如下所述。
根据https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date如果该值应解释为“表示自 1970 年 1 月 1 日 00:00:00 UTC (Unix Epoch) 以来的毫秒数”,则它应该是一个整数。
new Date()
有以下构造函数(根据上面的链接):
new Date();
new Date(value);
new Date(dateString);
new Date(year, month, day, hour, minute, second, millisecond);
value (这是将其转换为整数值时使用的构造函数)
表示自 1970 年 1 月 1 日 00:00:00 UTC(Unix 纪元)以来的毫秒数的整数值。
dateString (这是之前调用的构造函数)
表示日期的字符串值。该字符串应采用 Date.parse() 方法识别的格式(符合 IETF 的 RFC 2822 时间戳以及 ISO8601 的版本)。
关于javascript - 将表示毫秒的字符串转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23518726/