ハイチャートを使用して、過去24時間のデータを表示しようとしています。この例のようにx軸に時間を使用する場合、チャートは開始時間を必要とします Highcharts時間の例 。たとえば、24時間前に開始するように指示する方法がわかりません。現在の時刻が18日の午後22時34分だった場合、17時の午後22時34分に開始したいと思います。時間と日付に関連するコードがあまり得意ではなく、Javascriptも私の強みではありません。完成した出力が次のようになる必要があると思います:pointStart: Date.UTC(2012, 5, 17, 22, 34)
上記の例の場合、Date()からそれを取得する方法がわかりません。
編集:重複としてマークされた理由がわかりませんが、現在の時刻(現在-24時間)に対する相対時刻を取得しようとしました。相対文字列表現(「20時間前」)ではありません。もう1つの質問でも、ハイチャートについてはまったく触れられていません。
タイムスタンプを使用して計算できるため、タイムスタンプを使用する必要があります。
これは、現在のタイムスタンプを取得する方法です: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 )
これは実際にはかなり単純です:
var yesterday = new Date(new Date().getTime() - (24 * 60 * 60 * 1000));
単に、現在のタイムスタンプから24時間を引いた値で新しいDate
を作成します。
(24時間に60分を掛けた1時間ごとに60秒を掛けた1分ごとに1000ミリ秒を掛けた1秒ごと)
24時間前:
new Date(Date.now() - 86400 * 1000).toISOString()
new Date().toISOString()
'2017-02-04T09:15:25.233Z'
_Date.now()
は、エポックからの秒数を返します。86400
_秒を引いて_1000
_を減算します'2017-02-03T09:14:11.789Z'
_日付から24時間のミリ秒を引くだけです。
new Date (Date.UTC(2012, 5, 17, 22, 34) - 24 * 3600 * 1000)