如何在 x 轴上获取 highcharts 日期?

IT技术 javascript highcharts
2021-03-05 22:25:40

有没有标准方法可以在 Highcharts 的 x 轴上获取日期?在他们的文档中找不到它:https : //api.highcharts.com/highcharts/xAxis.type

当我的时间范围足够大时,它会显示日期。但是,当时间范围不够大时,它只显示小时,如下所示:

在此处输入图片说明

这不太理想……如果它可以在这种情况下显示日期和时间,那就太好了。有谁知道怎么做?

3个回答

Highcharts 将自动尝试为当前缩放范围找到最佳格式。如果 xAxis 具有类型,则完成此操作'datetime'接下来计算当前缩放的单位,它可以是以下之一:

  • 第二
  • 分钟
  • 小时
  • 星期

然后使用该单位查找轴标签的格式。默认模式是:

second: '%H:%M:%S',
minute: '%H:%M',
hour: '%H:%M',
day: '%e. %b',
week: '%e. %b',
month: '%b \'%y',
year: '%Y'

如果您希望这一天成为“小时”级别标签的一部分,您应该更改该dateTimeLabelFormats级别选项 include%d%e这些是可用的模式:

  • %a:短工作日,如“星期一”。
  • %A:长工作日,如“星期一”。
  • %d:月份中的两位数日期,01 到 31。
  • %e:一个月中的第几天,从 1 到 31。
  • %b:短月份,如“Jan”。
  • %B:长月,如“一月”。
  • %m:两位数的月份数字,01 到 12。
  • %y:两位数的年份,如 09 代表 2009。
  • %Y:四位数年份,如 2009。
  • %H:24 小时制的两位数小时,00 到 23。
  • %I:12h 格式的两位数小时,00 到 11。
  • %l(小写 L):12h 格式的小时,1 到 11。
  • %M:两位数分钟,00 到 59。
  • %p:大写 AM 或 PM。
  • %P:小写 AM 或 PM。
  • %S:两位数秒,00 到 59

http://api.highcharts.com/highcharts#xAxis.dateTimeLabelFormats

通过阅读源码找到的,查看这里的dateFormat方法:Utilities.js
2021-04-16 22:25:40
我按照您的示例进行了设置,但是当我每秒多次为其提供数据时,它仍然显示毫秒。你知道为什么吗?
2021-04-16 22:25:40
除此之外,当前缩放级别的默认模式还包括“毫秒”键。
2021-04-21 22:25:40
非常感谢——文档中提到了“dateFormat”,但不清楚他们是希望你参考源代码中的方法还是文档中的其他地方。为我节省了很多时间:)
2021-05-06 22:25:40
可能是一个愚蠢的问题,但出于好奇……你在哪里找到这些日期代码的其余部分?该参考仅显示您包含的默认模式。
2021-05-10 22:25:40

从 Highcharts API 中查看此示例

替换这个

return Highcharts.dateFormat('%a %d %b', this.value);

有了这个

return Highcharts.dateFormat('%a %d %b %H:%M:%S', this.value);

看看这里dateFormat()功能。

另见 - tickIntervalpointInterval

示例链接不再有效。当我们选择 Run 时什么也没有发生。
2021-04-22 22:25:40
这是一个老问题,但这个答案非常有帮助。特别是您附加的示例链接。
2021-05-04 22:25:40
@Simsons 我在上面使用的 Highcharts 链接已经失效,所以我更新了链接。现在,小提琴似乎正在发挥作用。
2021-05-07 22:25:40
以下是dateFormat接受的日期代码列表github.com/highcharts/highcharts/issues/...
2021-05-12 22:25:40

你这样写-:

xAxis: {
        type: 'datetime',
        dateTimeLabelFormats: {
           day: '%d %b %Y'    //ex- 01 Jan 2016
        }
}

还检查其他日期时间格式

http://api.highcharts.com/highcharts#xAxis.dateTimeLabelFormats