我有一个日期数组,并已使用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"
];
我有一个日期数组,并已使用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"
];
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())
通过int
,你的意思是一个划时代的时间?
new Date(2016, 8, 1).getTime()/1000
的功能:
function dateToEpoch(date) {
return date.getTime()/1000
}
,并呼吁为:
dateToEpoch(new Date(2016, 8, 1);
我想“纪元时间”是[*时间值*](http://ecma-international.org/ecma-262/7.0/index.html#sec -time值和时间范围)? – RobG
您可以通过
var myInt = Number(new Date(dates_as_int[0]));
运行如果参数是一个Date对象,则Number()函数将返回自UTC 1970年1月1日午夜以来的毫秒数。
您需要先将日期转换为Date,然后才是数组中的字符串... –
我相信我做了相应的更改@AlekseyL。 –
在这里,您可以尝试什么:
var d = Date.parse("2016-07-19T20:23:01.804Z");
alert(d); //this is in milliseconds
使用内建Date.parse
功能,其接受在ISO8601格式的输入并直接在所需的整数返回值返回:
var dates_as_int = dates.map(Date.parse);
这应该是最好的答案。清晰和简单的代码 – August
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