Warm tip: This article is reproduced from serverfault.com, please click

highcharts-如何格式化Highstock范围滑块的日期和时间格式

(highcharts - How to format Highstock range slider date and time formatting)

发布于 2020-11-30 13:53:11

Highstock在包含日期和时间的主图下方有一个时间范围选择器。例如,此示例中的10月10日:https : //www.highcharts.com/demo/stock/intraday-area

我该如何格式化它们,例如改为说“ 10/10”?

Questioner
Jkarttunen
Viewed
22
oguzhancerit 2020-11-30 22:29:37

据我了解,你想更改图表下方的导航器日期格式。

在此处输入图片说明

你可以像这样在图表选项中添加“导航器”。

navigator: {
        xAxis: {
            labels: {
                formatter: function() {
                
                    var d = new Date(this.value),
                        month = '' + (d.getMonth() + 1),
                        day = '' + d.getDate(),
                        year = d.getFullYear();

                    if (month.length < 2) 
                        month = '0' + month;
                    if (day.length < 2) 
                        day = '0' + day;

                    return [day,month,year].join('/');
                }
            }
        }
    }

你可以在下面找到完整的代码段并更改格式化程序功能。

Highcharts.getJSON('https://cdn.jsdelivr.net/gh/highcharts/highcharts@v7.0.0/samples/data/new-intraday.json', function (data) {

    // create the chart
    Highcharts.stockChart('container', {

        title: {
            text: 'AAPL stock price by minute'
        },

        subtitle: {
            text: 'Using ordinal X axis'
        },

        xAxis: {
            gapGridLineWidth: 0
        },
                navigator: {
            xAxis: {
                labels: {
                    formatter: function() { // You can change the function according to your needs. 
                    
                        var d     = new Date(this.value);
                        var month = '' + (d.getMonth() + 1);
                        var day   = '' + d.getDate();
                        var year  = d.getFullYear();

                        if (month.length < 2) 
                            month = '0' + month;
                        if (day.length < 2) 
                            day = '0' + day;

                        return [day,month].join('/');
                    }
                }
            }
        },
        rangeSelector: {
            buttons: [{
                type: 'hour',
                count: 1,
                text: '1h'
            }, {
                type: 'day',
                count: 1,
                text: '1D'
            }],
            selected: 1,
            inputEnabled: false
        },

        series: [{
            name: 'AAPL',
            type: 'area',
            data: data,
            gapSize: 5,
            tooltip: {
                valueDecimals: 2
            },
            fillColor: {
                linearGradient: {
                    x1: 0,
                    y1: 0,
                    x2: 0,
                    y2: 1
                },
                stops: [
                    [0, Highcharts.getOptions().colors[0]],
                    [1, Highcharts.color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')]
                ]
            },
            threshold: null
        }]
    });
    
    
});
<div id="container" style="height: 400px; min-width: 310px"></div>

<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script src="https://code.highcharts.com/stock/modules/data.js"></script>
<script src="https://code.highcharts.com/stock/modules/exporting.js"></script>
<script src="https://code.highcharts.com/stock/modules/export-data.js"></script>