私はこれとしばらく格闘しています。エポックを日付オブジェクトに変換しようとしています。エポックは UTC で送信されます。new Date()
エポックを渡すと、ローカル エポックであると想定されます。UTC オブジェクトを作成し、setTime()
それを使用して適切なエポックに調整しようとしましたが、役立つと思われる唯一の方法は であり、toUTCString()
文字列は役に立ちません。その文字列を新しい日付に渡すと、UTC であることが認識されるはずですが、認識されません。
new Date( new Date().toUTCString() ).toLocaleString()
次に試みたのは、ローカルの現在のエポックと UTC の現在のエポックの差を取得しようとしたのですが、これも取得できませんでした。
new Date( new Date().toUTCString() ).getTime() - new Date().getTime()
表示される差は 1000 ミリ秒未満と非常に小さいです。
助言がありますか?
ベストアンサー1
もっと簡単な解決策があると思います。初期日付をエポックに設定し、UTC 単位を追加します。秒単位で保存された UTC エポック変数があるとします。1234567890
これをローカル タイム ゾーンの適切な日付に変換するには、次のようにします。
var utcSeconds = 1234567890;
var d = new Date(0); // The 0 there is the key, which sets the date to the epoch
d.setUTCSeconds(utcSeconds);
d
日付は(私のタイムゾーンでは)Fri Feb 13 2009 18:31:30 GMT-0500 (EST)