2016-08-01 318 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