【问题标题】:Format datetime axis in highcharts?在高图中格式化日期时间轴?
【发布时间】:2015-05-13 05:26:34
【问题描述】:

http://jsfiddle.net/LLExL/4537/

Can anyone please help with this date time axis formatting on highcharts. 
I want  Xaxis to show month only once unless the new month begins.
Like 29 April 30 1 May 2 3 4 5 
Any help would be highly appreciated

【问题讨论】:

    标签: datetime highcharts formatting axis-labels


    【解决方案1】:

    您可以使用 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;
        }
    }
    

    这是DEMO

    编辑:

    如果您每个月的第一天不是从 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;
         }
    }
    

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

    【讨论】:

    • 如果我在 xaxis 中的随机天数总是不以 1 开头,我该怎么做?
    • @Hary 请检查编辑。更改您的数据并查看它是否适用于随机日期。
    猜你喜欢
    • 1970-01-01
    • 2018-10-02
    • 2019-06-28
    • 2016-12-13
    • 1970-01-01
    • 2020-10-06
    • 2021-06-01
    • 2015-07-10
    相关资源
    最近更新 更多