gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 12:34:36 25 4
gpt4 key购买 nike

我有一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com