32

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

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

4

4 に答える 4

64

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

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

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

(24 時間に各時間の 60 分を掛け、各分に 60 秒を掛け、各秒に 1000 ミリ秒を掛ける)

于 2013-12-31T21:31:13.993 に答える
31

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

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

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

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

このフィドルを参照してください: http://jsfiddle.net/Mjm7V/

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

于 2012-06-17T15:36:33.397 に答える
2

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

new Date (Date.UTC(2012, 5, 17, 22, 34) - 24 * 3600 * 1000)
于 2012-06-17T15:28:03.327 に答える