Резюме
Я пытаюсь создать линейный график в Google Charts с датами в качестве оси X. У меня все это отсортировано, но для него требуются проходные даты в виде Date
объектов, т.е. new Date(2005, 3, 13)
. Можно ли как-нибудь передать его как метку времени Unix или, возможно, строку?
Подробнее
Итак, у меня есть куча данных в PHP, которые я хочу отобразить. Я беру данные и упорядочиваю их в массив в формате, который будет производить правильный формат JSON при запуске через json_encode()
для документов данных Google :
$graph_data = array(
'cols' => array(
array(
'id' => 'date',
'label' => 'Date',
'type' => 'datetime',
),
array(
'id' => 'odometer',
'label' => 'Miles',
'type' => 'number',
),
),
'rows' => array(
array(
'c' => array(
array( 'v' => 1331479502 ),
array( 'v' => 56872 ),
),
),
array(
'c' => array(
array( 'v' => 1331375984 ),
array( 'v' => 55324 ),
),
),
array(
'c' => array(
array( 'v' => 1328966460 ),
array( 'v' => 54244 ),
),
),
),
);
{"cols":[{"id":"date","label":"Date","type":"datetime"},{"id":"odometer","label":"Miles","type":"number"}],"rows":[{"c":[{"v":1331479502},{"v":56872}]},{"c":[{"v":1331375984},{"v":55324}]},{"c":[{"v":1328966460},{"v":54244}]}]}
Итак, у меня отключено создание JSON, но API хочет, чтобы даты передавались как Date
объект, а не как число (или строка). Это выдает ошибку прямо сейчас, но если я изменю ее с datetime
на number
, она отлично отобразится, поэтому я знаю, что мой формат JSON правильный.
Могу ли я что-нибудь сделать, чтобы API принимал метки времени Unix, или, может быть, какую-то строку?
Когда я это напечатал, я понял, что, возможно, я мог бы использовать некоторый Javascript для обхода объекта JSON и замены временных меток на Date
объекты, но было бы неплохо, если бы мне не нужно было манипулировать данными через Javascript.
EDIT
Я получил часть пути, установив type
на number
и пройдя такие даты:
array(
'c' => array(
array( 'v' => 1331479502, 'f' => 'March 11th, 2012' ),
array( 'v' => 56872 ),
),
),
Это заставляет значение f
отображаться во всплывающей подсказке (yay!), Но значение v
все еще используется для меток оси. Хм.
РЕДАКТИРОВАТЬ # 2
Похоже, что есть возможность использовать DataView для преобразования number
метки времени в дату, но я еще не понял.