2016-08-07 20 views
-2

私はGoogleのスプレッドシートに5/31/2016 0:22:38の値を持つセルを持っていますが、データを取得するスクリプトを作成すると、42521.015713761575が返されます。私はjquery convert number to date?からいくつかのコードを試しましたが、ほとんどは1970年に戻っています。上記フロートをどのようにフォーマットすることができますか?ありがとう... :)Google Apps Script _現在のfloatに変換

+2

あなたの質問を更新してくださいすることができあなたのスクリプトで? –

+0

[Googleスプレッドシートから正しい時刻値を読み取る方法](http://stackoverflow.com/questions/17715841/how-to-read-the-correct-time-values-from-google-spreadsheet) –

答えて

1

これは明らかに1899年12月30日00:00:00からの経過日数です。

あなたは(= 12月11日ので、数ヶ月はゼロベースであることに注意)次のコードでバックUTCの日付に変換することができます:

var x = 42521.015713761575; 
 

 
// seconds in day = 24 * 60 * 60 = 86400 
 
var date = new Date(Date.UTC(1899, 11, 30, 0, 0, x * 86400)); 
 

 
console.log(date.toUTCString());

+0

Wed、01 Jun 2016 16:22:37 GMTはJSFiddleの結果です...近づいていますか?多分タイムゾーンの問題? :) –

+0

@MansonMamaril私は、少なくとも誰もが同じものを見ているように、UTCの日付を作成するために私のコードを更新しました。 :-)私はまた、期待される結果と一致するように基準日(1900年1月1日の2日前)を更新しました。しかし、これはまだ非常にhackishと信頼できないように見えます。専用の方法を探すことをお勧めします。 (あなたはGoogleが提供していないと確信していますか?) – Arnauld

+0

私はさまざまなstackoverflowからのチュートリアルでutilities.formatdateを試しましたが、1970年からの日付も提供しています... –

関連する問題