私はJavaScriptを使用してミリ秒を日付に変換しようとしています:
new Date(Milliseconds);
コンストラクタですが、たとえば1372439683000というミリ秒の値を指定すると、無効な日付が返されます。 ミリ秒を日付に変換するサイト にアクセスすると、正しい日付が返されます。
なぜアイデアがありますか?
数値を使用していない、数値のように見えるstringを使用しているMDNによると、文字列を Date
に渡すと、
解析メソッド(IETF準拠RFC 2822タイムスタンプ)によって認識される形式。
このような文字列の例は「December 17, 1995 03:24:00
」ですが、「1372439683000
」のような文字列を渡しているため、解析できません。
Milliseconds
または単項の+
を使用して、parseInt
を数値に変換します。
new Date(+Milliseconds);
new Date(parseInt(Milliseconds,10));
Date
関数では大文字と小文字が区別されます。
new Date(Milliseconds);
これの代わりに
new date(Milliseconds);
これを使って
new Date(Milliseconds);
あなたのステートメントはあなたに与えるでしょう日付は定義されていませんエラー
別の理由でこのエラーが発生していました。
値がjsonであるredisからキーを読み取りました。
client.get(someid, function(error, somevalue){});
今、私はJSONオブジェクトに解析せずに_somevalue.start_time
_のようなsomevalue
(文字列)内のフィールドにアクセスしようとしていました。これは「未定義」を返していましたが、日付コンストラクタに渡されると、new Date(somevalue.start_time)
は「無効な日付」を返します。
そのため、json内のフィールドにアクセスする前に最初にJSON.parse(somevalue)
を使用してJSONオブジェクトを取得することで問題を解決しました。