【发布时间】:2014-07-30 13:53:14
【问题描述】:
我需要在 Highchart 图表上绘制一些日期时间间隔。我有一个结构如下的 XML 文件:
<chart>
<categories>
<item>Status</item>
</categories>
<series>
<name>Breakdown</name>
<data>
<axis>0</axis>
<low>2013,07,03, 0, 0, 0</low>
<high>2013, 07, 03, 4, 0, 0</high>
</data>
</series>
<series>
<name>Production</name>
<data>
<axis>0</axis>
<low>2013, 07, 03, 10, 0, 0</low>
<high>2013, 07, 03, 12, 0, 0</high>
</data>
</series>
<series>
<name>TrialRun</name>
<data>
<axis>0</axis>
<low>2013, 07, 03, 14, 0, 0</low>
<high>2013, 07, 03, 15, 0, 0</high>
</data>
</series>
<series>
<name>ChangeOver</name>
<data>
<axis>0</axis>
<low>2013, 07, 03, 4, 0, 0</low>
<high>2013, 07, 03, 10, 0, 0</high>
</data>
</series>
</chart>
如何从代码中提取日期并将其解析为 UTC 格式的 jQuery
我已经尝试使用下面的代码,但它没有在我的图表上绘制任何值(日期):
// Load the data from the XML file
$.get('data.xml', function (xml) {
// Split the lines
var $xml = $(xml);
// push series
$xml.find('series').each(function (i, series) {
var seriesOptions = {
name: $(series).find('name').text(),
data: []
};
// push data points
$(series).find('data').each(function (i, value) {
var seriesData = {
x: parseInt($(value).find('axis').text()),
low: Date.UTC(parseInt($(value).find('low').text())),
high: Date.UTC(parseInt($(value).find('high').text()))
};
seriesOptions.data.push(seriesData);
});
// add it to the options
options.series.push(seriesOptions);
});
备注:
- 如果有比 UTC 更好的格式来解析 XML 日期请指定
- 如果有更好的格式在 XML 中存储日期时间,请指定
- 如果有更简单的 JSON 替代方法,请编写等效代码
(我是 jQuery 和 XML 文件的初学者,根本没有使用过 JSON)
【问题讨论】:
-
好吧,您的解析器和解决方案看起来不错,但也许更好的是更新您的后端以返回以毫秒为单位的时间,而不是格式 yyyy,mm,dd,hh,mm,ss。
-
嗯,我找到了解决方案,它实际上是在 XML 中,在解析中有点。
标签: jquery arrays xml list highcharts