Подтвердить что ты не робот

Понимание формата даты по оси x nvd3

как дата (x xAxis) отформатирована как "1025409600000"? Я изучаю их документацию, но не могу понять, как это работает, это облегчило бы мою жизнь, если бы кто-нибудь помог мне понять, как изменить это на "нормальный" формат даты, например MMDDYYYY

Это диаграмма: http://nvd3.org/ghpages/stackedArea.html

Документация: https://github.com/mbostock/d3/wiki/Time-Formatting

Спасибо

4b9b3361

Ответ 1

Я интерпретировал ваш вопрос, как 1025409600000 отформатирован в MMDDYY как то, что происходит в примере NV.

В примере, который вы указали на ось x, указаны даты почти в том формате, в котором вы хотите:% m/% d/% Y (или MMDDYY) дата оси x отформатирована в следующей строке:

chart.xAxis
     .tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });

Таким образом, d3.time.format('%x') указывает формат даты, возвращаемой из (new Date(d)). Документация, на которую вы указали, позволяет нам знать, какой формат будет и что %x - дата, как "% m/% d/% Y", которая, как представляется, возвращает "% m/% d/% y". После прочтения документации я бы ожидал, что код NV вернет формат, который вам нужен, но вы можете легко получить формат после:

d3.time.format('%m/%d/%Y')(new Date(d));

new Date(d) принимает данные даты и преобразует их в дату javascript. Данные даты в примере NV - это количество миллисекунд с 1 января 1970 года 00:00:00 UTC (Unix Epoch) - см. Эту страницу MDN. Вы можете проверить это самостоятельно, набрав new Date(1025409600000) на консоли.

Чтобы D3 распознал формат даты, будь то% m/% d/% Y или что-то еще, что вам нужно, чтобы создать формат времени, а затем проанализировать данные о дате. Это описано на странице "Форматирование времени D3", на которой вы указали ссылку, и я просто адаптирую ее к вашему примеру.

Создайте необходимый формат времени:

var format = d3.time.format("%m/%d/%Y");

И использование этого для анализа ваших данных:

format.parse(d.Date);

Без вашего кода я не могу точно сказать, куда это нужно, но это должно быть довольно ясно. Вы также можете попробовать это на консоли.

Надеюсь, что это поможет