Как отформатировать значение даты в серии данных для сравнения с полем базы данных? - PullRequest
0 голосов
/ 07 декабря 2011

Я использую старшие диаграммы с этим кодом для отображения дат по оси X, которые он получает из ряда данных. Я хотел бы сравнить эти даты с полем в базе данных, и, если совпадение существует, выполните условие форматирования, чтобы отобразить значок, где существует совпадение. Как установить возвращаемое значение в соответствии с форматами даты в серии? Спасибо

Смотрите в 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 Ответ

1 голос
/ 07 декабря 2011

В примере checkDatabase() никогда не вызывается, перед ним стоит оператор return. Но я думаю, что это не актуальный вопрос здесь

=== ( оператор строгого равенства ) не будет выполнять преобразование типов, поэтому здесь происходит то, что отметка времени, например, Date.UTC(2011, 11, 4) (это число в миллисекундах с 1970 года, см. Дата ) сравнивается со строкой '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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...