Datetime 在Highchart的x轴中设置日期时间格式

Datetime 在Highchart的x轴中设置日期时间格式,datetime,highcharts,Datetime,Highcharts,我正在尝试在highchart中实现日期时间序列图。我已经提供了UNIX时间戳,它以这样的方式绘制了8小时的数据: 如你所见,我不知道这张图表的日期。我想在第一点(“%e.%b”)中显示日期。现在,当日期发生变化时,它会自动显示24小时的日期,如下所示: 这是我现在的实现: xAxis: { type: 'datetime', crosshair: true, gridLineWidth: 0 } 我尝试使用如下格式设

我正在尝试在highchart中实现日期时间序列图。我已经提供了UNIX时间戳,它以这样的方式绘制了8小时的数据:

如你所见,我不知道这张图表的日期。我想在第一点(“%e.%b”)中显示日期。现在,当日期发生变化时,它会自动显示24小时的日期,如下所示:

这是我现在的实现:

      xAxis: {
        type: 'datetime',
        crosshair: true,
        gridLineWidth: 0
      }
我尝试使用如下格式设置程序,但除了第一点外,它根本不显示日期:

      xAxis: {
        type: 'datetime',
        labels: {
          formatter: function () {
            if (this.isFirst) {
              return Highcharts.dateFormat('%e. %b', this.value);
            }
            return Highcharts.dateFormat('%H:%M', this.value);
          }
        },
        crosshair: true,
        gridLineWidth: 0
      }
我正在尝试编写一个格式化程序函数,它在第一点和午夜显示日期和所有其他时间,它以HH:mm显示时间?

您可以使用
getHours()
检查轴标签数据值的小时数,并相应地格式化:

  labels: {
    formatter: function() {
      if (this.isFirst) {
        return Highcharts.dateFormat('%e. %b', this.value);
      } 
      else {
        var t = new Date(this.value);
        var h = t.getHours();
        return h == 0 
          ? Highcharts.dateFormat('%e. %b', this.value) 
          : Highcharts.dateFormat('%H:%M', this.value);
      }

    }
  }
小提琴:

您可以使用
getHours()
检查轴标签数据值的小时数,并相应设置格式:

  labels: {
    formatter: function() {
      if (this.isFirst) {
        return Highcharts.dateFormat('%e. %b', this.value);
      } 
      else {
        var t = new Date(this.value);
        var h = t.getHours();
        return h == 0 
          ? Highcharts.dateFormat('%e. %b', this.value) 
          : Highcharts.dateFormat('%H:%M', this.value);
      }

    }
  }
小提琴:


“它以HH:mm显示时间”这正是您告诉它显示的:
返回Highcharts.dateFormat(“%H:%M”,this.value)我不清楚实际的问题是什么。@jlbiggs很抱歉不清楚。我想将显示数据的值显示为%e.%b大约午夜。与默认格式设置程序得到的值类似。“它以HH:mm显示时间”这正是您告诉它显示的:
return Highcharts.dateFormat(“%H:%M”,this.value)我不清楚实际的问题是什么。@jlbiggs很抱歉不清楚。我想将显示数据的值显示为%e.%b大约午夜。与使用默认格式化程序获得的值类似。