酒窝时间格式杂耍

时间:2013-11-25 14:42:48

标签: d3.js dimple.js

我很困惑日期由酒窝处理(或者可能只是D3)。

我的问题可分为两个问题:

  1. 我的日期在我的csv文件中以%Y-%m-%d %H:%M:%S格式显示。为了将它们转换为日期对象,我目前使用的是与“vanilla”d3中相同的循环。

    data.forEach(function (d) {
       var format = d3.time.format("%Y-%m-%d %H:%M:%S");
       d.Date = format.parse(d.Date);
    });
    

    有更快的方法吗?也许使用timeField function?还是dateParseFormat?我可能错了,但这些函数看起来像是处理日期的助手。

  2. 我想控制时间对象的主要原因是能够重新格式化它们。文档似乎表明可以使用tickFormat function。不幸的是我也没能使用它。我最好的猜测:

    var x = myChart.addCategoryAxis("x", "Date");

    x.tickFormat(d3.time.format("%Y-%m")); // For example for a year-month format

  3. 仅返回

    x.tickFormat不是函数

    非常感谢,

1 个答案:

答案 0 :(得分:3)

时间格式与时间轴有关。如果要使用时间轴,则不需要循环,只需使用:

myChart.addTimeAxis("x", "Date", "%Y-%m-%d %H:%M:%S", "%Y-%m");

其中“%Y-%m-%d%H:%M:%S”是您的输入,“%Y-%m”是您的输出格式。 “x.tickFormat不是函数”错误的原因是它不是:)。如果您愿意,可以将时间轴使用的tickFormat设置为属性,但如果使用上述工厂方法则不需要它:

myTimeAxis.tickFormat = "%Y-%m";

但这仅适用于时间轴。

可以在此处找到时间轴的示例:

http://dimplejs.org/advanced_examples_viewer.html?id=advanced_time_axis

希望有所帮助

约翰