Datetime 在海图中格式化日期时间轴?

Datetime 在海图中格式化日期时间轴?,datetime,highcharts,formatting,axis-labels,Datetime,Highcharts,Formatting,Axis Labels,您可以使用xAxis.labels.formatter函数精确指定要显示为xAxis标签的内容: labels: { formatter: function() { var date = new Date(this.value); var month = date.toDateString().substring(4,7); var day = date.getDate(); if(this.isFirst || day


您可以使用
xAxis.labels.formatter
函数精确指定要显示为xAxis标签的内容:

labels: {
    formatter: function() {
        var date = new Date(this.value);
        var month = date.toDateString().substring(4,7);
        var day = date.getDate();

        if(this.isFirst || day == 1)
            return day + '. ' + month;

        return day;
    }
}
这是我的建议

编辑:

如果您每个月的第一天不是从
1
开始,您可以这样更改代码:

labels: {
    formatter: function() {
         var dateArray = this.axis.series[0].xData;
         var previousDate = new Date(dateArray[dateArray.indexOf(this.value) - 1]);
         var date = new Date(this.value);
         var month = date.toDateString().substring(4,7);
         var previousMonth = previousDate.toDateString().substring(4,7);
         var day = date.getDate();

         if(this.isFirst || (previousMonth != month))
            return day + '. ' + month;

         return day;
     }
}

这样,您可以检查上一点,如果他们的月份不匹配,您可以返回日期和月份。否则就只有一天了。以下是。

如果我在xaxis中的随机天数总是不以1开头,我该怎么做?@Hary请检查编辑。更改您的数据,并查看它是否适用于随机日期。
labels: {
    formatter: function() {
         var dateArray = this.axis.series[0].xData;
         var previousDate = new Date(dateArray[dateArray.indexOf(this.value) - 1]);
         var date = new Date(this.value);
         var month = date.toDateString().substring(4,7);
         var previousMonth = previousDate.toDateString().substring(4,7);
         var day = date.getDate();

         if(this.isFirst || (previousMonth != month))
            return day + '. ' + month;

         return day;
     }
}