如何格式化系列数据日期值以与数据库字段进行比较?

时间:2011-12-07 13:10:11

标签: javascript highcharts

我正在使用带有此代码的高级图表来显示从数据系列中获取的x轴日期。我想将这些日期与数据库中的字段进行比较,如果存在匹配,则运行格式化程序条件以显示匹配存在的图标。如何设置返回值以匹配系列中的日期格式?感谢

See in jsfiddle

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 '&nbsp;<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';
}

1 个答案:

答案 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