我有一个日期数组,并且一直在使用 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" ];
你可以通过 Number()运行它
Number()
var myInt = Number(new Date(dates_as_int[0]));
如果参数是 Date 对象,Number ()函数返回自1970年1月1日午夜以来的毫秒数。
数字()的使用
以下是你可以尝试的方法:
var d = Date.parse("2016-07-19T20:23:01.804Z"); alert(d); //this is in milliseconds
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())
日期上的 GetTime ()方法返回一个“ ECMAScript 时代”,这与 UNIX 时代相同,但是在 毫秒中。这一点很重要,因为其他一些语言使用的 UNIX 时间戳以秒为单位。
UNIX 时间戳,相当于自1970年1月1日以来的毫秒数。这是一个你可能在数据库或一些应用程序中看到过的日期,它通常是一个错误的信号。
使用内置的 Date.parse函数,该函数接受 ISO8601格式的输入,并直接返回所需的整数返回值:
Date.parse
var dates_as_int = dates.map(Date.parse);
如果你的格式日期是 YYYY/M/D,你可以使用以下代码:
let yourDate = momentjs(new Date().toLocaleDateString(), 'M/D/YYYY').format('YYYY-MM-DD'); let newDate = Number(yourDate.slice(0, 10).split('-').join(''));