我正在使用带有此代码的高级图表来显示从数据系列中获取的x轴日期。我想将这些日期与数据库中的字段进行比较,如果存在匹配,则运行格式化程序条件以显示匹配存在的图标。如何设置返回值以匹配系列中的日期格式?感谢
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container'
},
xAxis: {
type: 'datetime',
labels: {
formatter: function() {
return Highcharts.dateFormat('%a %d %b', this.value);
if (checkDatabase(this.value)) {
return ' <img src="http://highcharts.com/demo/gfx/sun.png"/>';
} else {
return '';
}
}
}
},
series: [{
data: [ [Date.UTC(2011, 11, 4), 21],[Date.UTC(2011, 11, 3), 27],[Date.UTC(2011, 10, 11), 19] ]
}]
});
function checkDatabase(val) {
// Connect and query the db
return val === 'Saturday, Dec 3, 2011';
}
答案 0 :(得分:1)
在示例中,永远不会调用checkDatabase()
,前面有一个return
语句。但我猜这不是真正的问题..
===
(strict equal operator)不会进行类型转换,因此这里发生的是时间戳,例如Date.UTC(2011, 11, 4)
(从1970年开始的毫秒数,请参阅Date)与字符串'Saturday, Dec 3, 2011'
进行比较,并始终返回false
。
要进行比较,请将两个时间戳都转换为数字:
1322956800000 === Date.UTC(2011, 11, 4) // true
或比较字符串:
'Sun, 04 Dec 2011 00:00:00 GMT' === new Date(Date.UTC(2011, 11, 4)).toUTCString() // true