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

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

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

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

спасибо

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)). Документация, на которую вы указали, позволяет нам узнать, каким будет формат и что is %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);

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

надеюсь, что это помогает