仅显示X轴上选定日期的年份(无世纪)

时间:2013-11-12 13:12:32

标签: string date d3.js date-format

我只在X轴上显示某些日期,而我正在使用tickValues函数从我的“dataPop”数组中选择这些日期:

xAxisPop.tickValues([dataPop[0].date, dataPop[20].date, dataPop[40].date]) 

然而,我希望dataPop[20].datedataPop[40].date只显示年份,而不是世纪,例如,1980年为80。

我有一个变量“formatDate”,只显示年份,而不是世纪:

formatDate = d3.time.format("%y")

但是如何在tickValues函数中将formatDate应用于dataPop[20].datedataPop[40].date

另外,fyi。我的日期目前是字符串...所以我想在我的formatDate函数中使用d3.time.format而不是在格式化字符串时使用不同的D3格式化方法...这是正确的吗?或者我应该首先将日期从字符串更改为日期,然后运行formatDate函数?

非常感谢

1 个答案:

答案 0 :(得分:0)

您将格式化程序传递给xAxisPop.tickFormat。任何d3文本格式选项(如tickFormat)都会将常规JavaScript函数作为参数。 d3.time.format只是构建常见方法的辅助方法。

在您的情况下,由于您的日期只是字符串,我建议您只编写自己的格式化功能:

function formatTwoDigitYear(d) { return d.substr(2,2); }

话虽如此,通过尽可能早地将文本年份转换为日期,您可能会看到许多优势。