日期(x xAxis)如何格式化为“1025409600000”?我一直在研究他们的文档,但无法弄清楚这是如何工作的,如果有人能帮助我理解如何将其更改为“正常”日期格式,例如 MMDDYYYY,这将使我的生活更轻松
这是图表: http: //nvd3.org/ghpages/stackedArea.html
文档: https ://github.com/mbostock/d3/wiki/Time-Formatting
谢谢
日期(x xAxis)如何格式化为“1025409600000”?我一直在研究他们的文档,但无法弄清楚这是如何工作的,如果有人能帮助我理解如何将其更改为“正常”日期格式,例如 MMDDYYYY,这将使我的生活更轻松
这是图表: http: //nvd3.org/ghpages/stackedArea.html
文档: https ://github.com/mbostock/d3/wiki/Time-Formatting
谢谢
我已将您的问题解释为如何将 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 示例中的日期数据是自 1970 年 1 月 1 日 00:00:00 UTC(Unix 纪元)以来的毫秒数 - 请参阅此MDN页面。您可以通过new Date(1025409600000)
在控制台输入来自行检查。
要让 D3 识别您的日期格式,无论是 %m/%d/%Y 还是其他任何内容,您都需要创建时间格式,然后解析您的日期数据。这在您提供链接的 D3 时间格式页面中有所介绍,我将根据您的示例调整其中的内容。
创建您需要的时间格式:
var format = d3.time.format("%m/%d/%Y");
并使用它来解析您的数据:
format.parse(d.Date);
没有您的代码,我无法确切说明需要去哪里,但应该很清楚。您也可以在控制台上尝试一下。
希望这可以帮助