Javascript相对时间24小时前等等

Tot*_*oro 18 javascript datetime highcharts

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

Naf*_*Kay 37

这其实很简单:

var yesterday = new Date(new Date().getTime() - (24 * 60 * 60 * 1000));
Run Code Online (Sandbox Code Playgroud)

只需Date使用当前时间戳减去24小时的值构建一个新的.

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


Jul*_*ann 26

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

这是您获取当前时间戳的方式:Math.round(new Date().getTime() / 1000) 请注意这是计算机当地时间.

现在你可以在24小时前得到时间戳,如下所示:

var ts = Math.round(new Date().getTime() / 1000);
var tsYesterday = ts - (24 * 3600);
Run Code Online (Sandbox Code Playgroud)

请看这个小提琴:http://jsfiddle.net/Mjm7V/

编辑: 正如尼克正确指出的那样,Date#getTime返回UTC时间戳(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime)


cho*_*ovy 5

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'