2016-08-01 319 views
10

我有一个日期数组,并已使用map函数遍历它,但我无法弄清楚将其转换为整数的JavaScript代码。如何将日期转换为整数?

这是日期的数组:

var dates_as_int = [ 
    "2016-07-19T20:23:01.804Z", 
    "2016-07-20T15:43:54.776Z", 
    "2016-07-22T14:53:38.634Z", 
    "2016-07-25T14:39:34.527Z" 
]; 
+1

1.转换为['Date'](HTTPS:/ /developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date),2.调用['.getTime()'](https://developer.mozilla.org/en-US/ docs/Web/JavaScript/Reference/Global_Objects/Date/getTime) – Andreas

回答

23
var dates = dates_as_int.map(function(dateStr) { 
    return new Date(dateStr).getTime(); 
}); 

=>

[1468959781804, 1469029434776, 1469199218634, 1469457574527] 

更新: ES6版本:

const dates = dates_as_int.map(date => new Date(date).getTime()) 
0

通过int,你的意思是一个划时代的时间?

new Date(2016, 8, 1).getTime()/1000 

的功能:

function dateToEpoch(date) { 
    return date.getTime()/1000 
} 

,并呼吁为:

dateToEpoch(new Date(2016, 8, 1); 
+0

我想“纪元时间”是[*时间值*](http://ecma-international.org/ecma-262/7.0/index.html#sec -time值和时间范围)? – RobG

0

您可以通过​​

var myInt = Number(new Date(dates_as_int[0])); 

运行如果参数是一个Date对象,则Number()函数将返回自UTC 1970年1月1日午夜以来的毫秒数。

Use of Number()

+3

您需要先将日期转换为Date,然后才是数组中的字符串... –

+0

我相信我做了相应的更改@AlekseyL。 –

4

在这里,您可以尝试什么:

var d = Date.parse("2016-07-19T20:23:01.804Z"); 
alert(d); //this is in milliseconds 
4

使用内建Date.parse功能,其接受在ISO8601格式的输入并直接在所需的整数返回值返回:

var dates_as_int = dates.map(Date.parse); 
+1

这应该是最好的答案。清晰和简单的代码 – August