2011-07-20 3 views
0

私には何百ものCSVファイルが与えられています。私はそれが何であるかを見つけてJavaScriptを使って変換しようと努力してきましたが、今まで私は運がなかったのです。 私が与えたすべての指示は次のとおりです。「タイムスタンプ39845.03は、01/02/2009の日付と00:45の時刻を表しています。 Microsoftのタイムスタンプだと言われました。これはどのタイプのタイムスタンプで、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))