本文介绍了Highstock - 显示周数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在Highstock中显示日期的周数(不是Highcharts !)?

How can I show the week number for the date in Highstock (not Highcharts!)?

我的SQL看起来像这样

My SQL looks like this

select unix_timestamp(date)*1000 week
(....)
group by yearweek(date,3)

我的JS

$(function() {
    $.getJSON('json_chart.php', function(data) {

        // Create the chart
        $('#container').highcharts('StockChart', {


            rangeSelector : {
                selected : 2
            },

            title : {
                text : 'Wyniki'
            },
            xAxis: {
                type: 'datetime',
                dateTimeLabelFormats: {
                    day: '%e'
                }
            },
            yAxis: [{
                offset: 40,
                title: {
                    text: 'Ilośc'
                },
                lineWidth: 2
            }, {
                title: {
                    text: 'Efek'
                },
                opposite: true,
            }],

            series : [{
                name : 'Ode',
                data : data.ode,
                type : 'column',
                yAxis: 0
            },{
                name : 'Sku',
                data : data.sku,
                marker : {
                    enabled : true,
                    radius : 3
                },
                yAxis: 1,
                shadow : true
            },{
                name : 'TK',
                data : data.tpk,
                marker : {
                    enabled : true,
                    radius : 3
                },
                yAxis: 0,
                shadow : true
            }]
        });
    });
});

目前它看起来像这样:

但我想看一下像这样:

推荐答案

您可以使用 dateFormats 添加它,例如:

You can add it using dateFormats, for example: http://jsfiddle.net/EkAnm/

Highcharts.dateFormats = {
    W: function (timestamp) {
        var date = new Date(timestamp),
            day = date.getUTCDay() == 0 ? 7 : date.getUTCDay(),
            dayNumber;
        date.setDate(date.getUTCDate() + 4 - day);
        dayNumber = Math.floor((date.getTime() - new Date(date.getUTCFullYear(), 0, 1, -6)) / 86400000);
        return 1 + Math.floor(dayNumber / 7);

    }
}

然后使用或格式 dateFormat()

xAxis: {
        tickInterval: 7 * 24 * 36e5, // one week
        labels: {
            format: '{value:Week %W/%Y}'
        }
    },

这篇关于Highstock - 显示周数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-17 06:25