2015-06-29 6 views
0

Я пытаюсь отобразить метку времени на моем графике линии D3. Мои данные находятся в JSON. Дата выглядит так: '2015-04-02T23: 10: 00'. В настоящее время он форматируется следующим образом: var timeFormat = d3.time.format ('% Y-% m-% dT% H:% M:% S'); Когда на графике, она отображается следующим образом: Mon Jun 29 2015 9:50:00 GMT-0500 (Центральное летнее время)ISO8601 Дата Формат времени D3

Я хотел бы иметь возможность отформатировать его, чтобы он только показывает время , Например, 09:50:00. Я пробовал timeFormat к чему-то другому, и это не сработало. Мы ценим любые предложения.

+0

Вы видели [этот учебник] (http://www.d3noob.org/2013/01/format-date-time-axis-with-specified.html)? –

+0

* Что вы * разные вы пробовали? – Bergi

+0

@Bergi, я попытался изменить d3.time.format ('% Y-% m-% dT% H:% M:% S') до ('% I:% M:% p') и (' % H:% M:% S '). – CrashleyS

ответ

0

Вам нужно будет провести различие между синтаксическим разбором и строкой/форматированием. Так что используйте

var inputFormat = d3.time.format.iso; // or d3.time.format('%Y-%m-%dT%H:%M:%S'); 
var outputFormat = d3.time.format('%I:%M:%p'); // or whatever 

, а затем сделать

d3.select('#time').text(formatTime(d)); 
function formatTime(d) { 
    return outputFormat(inputFormat.parse(d.metricDate)); 
} 

(хотя в идеале metricDate не будет строка, но полученная дата объектом разбора даты при загрузке исходных данных)

См https://github.com/mbostock/d3/wiki/Time-Formatting для дальнейшего использования.

+0

Большое спасибо за то, что посмотрели на это для меня. Однако я добавил это изменение в свой код, и это не сработало. Я предполагаю, что это из-за большой проблемы с моим кодом. Ошибка, которую я получаю: Uncaught TypeError: Не удается прочитать свойство 'metricDate' неопределенного. – CrashleyS

+0

Нах, я испортил это, объем 'd' был другим. Теперь выглядит код в вашем комментарии. – Bergi

+0

Все в порядке! Какой комментарий? Я немного запутался. – CrashleyS

Смежные вопросы