1

我对Javascript完全陌生,我在创建Datefrom 时遇到了麻烦milliseconds

我有这个代码:

function (result) {

  alert("Retreived millis = " + result.created);
  //Prints "Retrieved millis = 1362927649000"

  var date = new Date(result.created);
  alert("Created Date = " + date);
  //Prints "Created Date = Invalid Date"

  var current = new Date();
  var currentDate = new Date(current.getTime());
  alert("Current Date = " + currentDate);
  //Prints "Current Date = Sun Apr 14 2013 12:56:51 GMT+0100"
}

最后一个警报证明创建Date是有效的,但我不明白为什么第一个Date没有正确创建,因为检索到millis的是正确的......据我所知,在Javascript中没有数据类型,所以它不能失败,因为检索到millis的是 astring或 a long,对吗?

4

1 回答 1

2

我怀疑result.created是一个字符串。由于Date构造函数接受字符串但期望它们的格式与此不同,因此它失败了。(例如,new Date("1362927649000")导致无效日期,但new Date(1362927649000)给我们Sun Mar 10 2013 15:00:49 GMT+0000 (GMT)。)

这应该对其进行排序(通过首先转换为数字,因此构造函数知道它正在处理自大纪元以来的毫秒数):

var date = new Date(parseInt(result.created, 10));
于 2013-04-14T12:04:50.890 回答