2011-07-20 28 views
0

我已經給出了數百個CSV文件,所有這些文件都帶有我不認識的時間戳。我一直在盡力找到它,並嘗試使用JavaScript轉換它們,但到目前爲止,我沒有運氣。 我給出的所有說明都是這樣的:「時間戳39845.03是日期01/02/2009和時間00:45的表示。」我被告知這是一個微軟的時間戳。這是什麼類型的時間戳,以及如何使用JavaScript將其轉換爲人類可讀格式

+0

這些時間戳的最大小數位數是多少? – digitalbath

+0

你需要使用時間戳數據嗎?時間戳字段通常用於管理併發性。 – BonyT

+0

@digitalbath從幾個文件中快速瀏覽它看起來像2,就像上面的例子。 – Peter

回答

1

看起來這是從01/01/1900起經過的天數。

var date = new Date('01 jan 1900'); 
date.setTime(date.getTime() + 39845.03 * 24 * 60 * 60 *1000); 

將在javascript中執行此操作。

額外的乘法器相當明顯地將其轉換爲毫秒。

+0

看起來像Excel使用的內部格式,小心他們故意弄錯的閏年:http://www.ozgrid.com/Excel/ExcelDateandTimes.htm – ADW

+0

是的,我認爲你是對的。根據dateandtime.com上的計算器,除了從1899年12月31日開始。 現在我的下一個問題是寫一些JS來轉換它,棘手的部分是小數點後面的部分... – Peter

2

這是Microsoft Excel的時間戳格式。這是一種特殊的。 1.1.1900 0:0是1.0。 2.1.1900 0:0是2.0。

逗號後面的部分表示時間。

ExcelTips: Unix timestamps to Excel他們給了一個公式,只需要倒置,以實現轉換。

function convertExcelTimeToUnix(excelTime) { 
    return (excelTime - 25569) * 86400; 
} 

結果是一個UNIX時間戳並且可以例如被傳遞到的Date的constzructor。

var realDate = new Date(convertExcelTimeToUnix(excelTime)) 
相關問題