javascript - 使用正确的月份格式化 Highcharts 日期

标签 javascript json highcharts

我有一个 Json 数据,我正在从数据库中检索该数据以填充 highcharts 系列 从数据库检索的系列数据如下所示。

'series_data' => 字符串 '[ {名称:'海得拉巴',数据:[ [日期.UTC(2013, 05, 01),311328],[日期.UTC(2013, 05, 02),363780], [日期.UTC(2013, 04, 03),364062],[日期.UTC(2013, 04, 04),283128], [日期.UTC(2013, 04, 05),322608]] }, {名称:'维杰亚瓦达',数据:[ [日期.UTC(2013, 06, 01),363216],[日期.UTC(2013, 06, 02),404670], [日期.UTC(2013, 06, 03),370783],[日期.UTC(2013, 06, 04),459942], [日期.UTC(2013, 07, 05),569499]] }]'

图表中显示的 javascript 日期存在问题,它显示的是提前一个月。 我知道 javascipt Date 将接受月份值 0 - 11...0 是一月,11 是十二月,

所以,我的问题是,在 Highcharts 中显示如何格式化日期以显示正确的月份。我无法在数据库端格式化日期。

最佳答案

您不必格式化数据库中的日期,但可以在发送到 Highcharts 之前对其进行格式化。

简单而不是:

Date.UTC(2013, 05, 01)

用途:

Date.UTC(2013, 04, 01)

或者更好:

Date.UTC(2013, 4, 1)

JS 解决方案:

function subtractMonth(a) {
    var date = new Date(a[0]),
        month = date.getMonth();

    date.setMonth(month - 1);

    return [date.getTime(), a[1]];
}

function sorter(a, b) {
        return a[0] - b[0];
}

var data = [{
    name: 'Hyderabad',
    data: [
        [Date.UTC(2013, 05, 01), 311328],
        [Date.UTC(2013, 05, 02), 363780],
        [Date.UTC(2013, 04, 03), 364062],
        [Date.UTC(2013, 04, 04), 283128],
        [Date.UTC(2013, 04, 05), 322608]
    ]
}, {
    name: 'Vijayawada',
    data: [
        [Date.UTC(2013, 06, 01), 363216],
        [Date.UTC(2013, 06, 02), 404670],
        [Date.UTC(2013, 06, 03), 370783],
        [Date.UTC(2013, 06, 04), 459942],
        [Date.UTC(2013, 07, 05), 569499]
    ]
}];

$.each(data, function (i, s) {
    s.data = s.data.map(subtractMonth);
    s.data.sort(sorter);
})



$('#container').highcharts({
    chart: {
        type: 'column'
    },
    xAxis: {
        type: 'datetime'    
    },
    series: data
});

jsFiddle:http://jsfiddle.net/n9nR2/

关于javascript - 使用正确的月份格式化 Highcharts 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23783757/

相关文章:

javascript - 如何将 json 数据传递给 highcharts 系列?

javascript - 如何使用 Capybara 和 Select2 v3.5.4 进行选择和元素

json - 在 Swift2 中解析 JSON 时出错

json - 如何在DRF中序列化一个对象的多个图像(如url中)?

jquery - IE8 中的 Highchart 渲染器路径问题

javascript - Highcharts 仪表使工具提示可见并居中

javascript - 将 ajax 错误和成功函数替换为传递给父函数的替代函数

javascript - 在 Typescript 中编写 AngularJS Controller 的最佳实践

javascript - 以编程方式启动 crossbar.io

javascript - 使用选定值中的数组填充 Kendo DropDownList