web-dev-qa-db-ja.com

24時間前のJavascript相対時間などの時間

ハイチャートを使用して、過去24時間のデータを表示しようとしています。この例のようにx軸に時間を使用する場合、チャートは開始時間を必要とします Highcharts時間の例 。たとえば、24時間前に開始するように指示する方法がわかりません。現在の時刻が18日の午後22時34分だった場合、17時の午後22時34分に開始したいと思います。時間と日付に関連するコードがあまり得意ではなく、Javascriptも私の強みではありません。完成した出力が次のようになる必要があると思います:pointStart: Date.UTC(2012, 5, 17, 22, 34)上記の例の場合、Date()からそれを取得する方法がわかりません。

編集:重複としてマークされた理由がわかりませんが、現在の時刻(現在-24時間)に対する相対時刻を取得しようとしました。相対文字列表現(「20時間前」)ではありません。もう1つの質問でも、ハイチャートについてはまったく触れられていません。

19
Totoro

タイムスタンプを使用して計算できるため、タイムスタンプを使用する必要があります。

これは、現在のタイムスタンプを取得する方法です:Math.round(new Date().getTime() / 1000) これはコンピュータの現地時間であることに注意してください。

これで、24時間前のタイムスタンプを次のように取得できます。

var ts = Math.round(new Date().getTime() / 1000);
var tsYesterday = ts - (24 * 3600);

このフィドルをご覧ください: http://jsfiddle.net/Mjm7V/

編集:ニックが正しく指摘したように、Date#getTimeはUTCタイムスタンプを返します( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime

24
Julian Hollmann

これは実際にはかなり単純です:

var yesterday = new Date(new Date().getTime() - (24 * 60 * 60 * 1000));

単に、現在のタイムスタンプから24時間を引いた値で新しいDateを作成します。

(24時間に60分を掛けた1時間ごとに60秒を掛けた1分ごとに1000ミリ秒を掛けた1秒ごと)

35
Naftuli Kay

24時間前:

new Date(Date.now() - 86400 * 1000).toISOString()

  1. 今:new Date().toISOString()
  2. 出力:_'2017-02-04T09:15:25.233Z'_
  3. Date.now()は、エポックからの秒数を返します。
  4. ミリ秒に変換するには、1日の_86400_秒を引いて_1000_を減算します
  5. 出力:_'2017-02-03T09:14:11.789Z'_
2
chovy

日付から24時間のミリ秒を引くだけです。

new Date (Date.UTC(2012, 5, 17, 22, 34) - 24 * 3600 * 1000)
2
bjornd