Javascript相对时间24小时前等等

时间:2012-06-17 15:24:23

标签: javascript datetime highcharts

我正在尝试使用highcharts来显示过去24小时内的一些数据。图表需要使用x轴时间的开始时间,如本例Highcharts time example中所示。我不知道如何告诉它如何在24小时前开始,例如,如果时间是18日下午22:34,我希望它在17日下午22:34开始。我对时间和日期相关的代码并不是很好,Javascript也不是我的强项。 我相信我需要完成的输出是这样的: pointStart: Date.UTC(2012, 5, 17, 22, 34) 对于上面的例子,但我不太确定如何从Date()获得它。

4 个答案:

答案 0 :(得分:35)

这实际上非常简单:

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

只需构建一个新的Date,其值为当前时间戳减去24小时。

(24小时乘以每小时60分钟乘以每分钟60秒乘以每秒1000毫秒)

答案 1 :(得分:23)

您应该使用时间戳,因为您可以使用它们进行计算。

这是获取当前时间戳的方式: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

答案 2 :(得分:2)

只需从日期开始减去24小时内的毫秒数:

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

答案 3 :(得分:2)

24小时前:

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

  1. 现在:new Date().toISOString()
  2. 输出:'2017-02-04T09:15:25.233Z'
  3. Date.now()返回自纪元以来的秒数。
  4. 86400天减去1000秒以转换为毫秒
  5. 输出:'2017-02-03T09:14:11.789Z'