JSON inline Конвертация даты - PullRequest
       5

JSON inline Конвертация даты

0 голосов
/ 28 апреля 2018

У меня есть графические данные D3 как здесь: https://www.metricsgraphicsjs.org/examples.htm#lines с примером кода

MG.data_graphic({
title: "Singleton",
description: "Handling a solitary data point.",
data: [{'date': new Date('2015-03-05T21:00:00Z'), 'value': 12000}],
width: 600,
height: 200,
right: 40,
target: '#singleton'
});

и разница в том, что я храню данные в базе данных. Но у меня проблема с отображением дат. Мои данные JSON (взятые из MySQL) выглядят так:

var data1 = [
 [
    {
     "date": "2018-04-28T13:42:55Z",
     "value": 20.8,
     "added": "2018-04-28T13:42:55Z"
    }
 ],
 [
    {
     "date": "2018-04-28T13:42:55Z",
     "value": 22.8,
     "added": "2018-04-28T13:42:55Z"
    }
 ],
 [
    {
    "date": "2018-04-28T13:42:55Z",
    "value": 23.9,
    "added": "2018-04-28T13:42:55Z"
    }
 ],
 [
    {
    "date": "2018-04-28T13:42:55Z",
    "value": 21.3,
    "added": "2018-04-28T13:42:55Z"
    }
 ]
]; 

Когда я пытаюсь отобразить эти данные, они не работают, показывает ошибки типа <path> attribute d: Expected number, "MNaN,86.570057581…" Но с другой стороны, если я установлю другую переменную, например

 var data2 = [
               [
                 {'date': new Date('2015-03-05T21:07:00Z'), 'value': 12000},
                 {'date': new Date('2015-03-05T21:10:00Z'), 'value': 5500},
                 {'date': new Date('2015-03-05T21:15:00Z'), 'value': 1000}
                ],
                [
                 {'date': new Date('2015-03-05T21:05:00Z'), 'value': 18000},
                 {'date': new Date('2015-03-05T21:07:00Z'), 'value': 15000},
                 {'date': new Date('2015-03-05T21:15:00Z'), 'value': 7000}
                ]               
             ];

Этот второй пример работает, и мне было интересно, что этот "new Date ()" делает с данными. Как я могу «исправить» первый массив data1 и сохранить его в другой переменной с правильными датами? - Я пробовал этот тип даты: Дата сб 28 апреля 2018 13:56:55 GMT + 0000 (UTC), но это не помогло, не сработало. Как это:

[
    {'date': 'Apr 28 2018 13:57:55 GMT+0000 (UTC)', 'value': 18000},
    {'date': 'Apr 28 2018 13:58:55 GMT+0000 (UTC)', 'value': 15000},
    {'date': 'Apr 28 2018 13:59:55 GMT+0000 (UTC)', 'value': 7000}
]

Это не сработало. Преобразует ли «new Date ()» дату и время в целое число, строку или что-то еще?

Я просто хочу найти способ изменить data1 переменную и преобразовать ее даты в правильные значения, чтобы иметь возможность отображать их на графике.

Спасибо, ребята!

...