D3.js D3:将时间刻度的刻度级别转换为时间段,例如:天、周或月?

D3.js D3:将时间刻度的刻度级别转换为时间段,例如:天、周或月?,d3.js,scale,D3.js,Scale,从d3.event.scale(例如0.5或1.5)获取时间刻度的当前刻度级别,是否有任何规则可以将其转换为人类可读的形式,如-天、周、月或年 更新: 以下是我正在研究的内容的草稿:。我基本上是在寻找一种方法来获取缩放或平移后的时间边界以及上述标识符中的缩放因子。缩放后 var width = x.domain(); var dur = width[1] - width[0]; 将在毫秒内返回刻度的宽度。然后,此持续时间可以转换为您喜欢的任何形式 这是一个工作示例,我使用moment.j

从d3.event.scale(例如
0.5
1.5
)获取时间刻度的当前刻度级别,是否有任何规则可以将其转换为人类可读的形式,如-天、周、月或年

更新:

以下是我正在研究的内容的草稿:。我基本上是在寻找一种方法来获取缩放或平移后的时间边界以及上述标识符中的缩放因子。

缩放后

var width = x.domain(); 
var dur = width[1] - width[0]; 
将在
毫秒内返回刻度的
宽度
。然后,此持续时间可以转换为您喜欢的任何形式


这是一个工作示例,我使用
moment.js
将图表底部的持续时间人性化:


你能举个例子说明你的秤的实际坐标是多少吗?缩放后,将执行
var width=x.scale().extent();var dur=宽度[1]-宽度[0]和将
dur
从毫秒转换为适当的时间段是不够的?如果在这些操作之后我得到毫秒,那么可能就足够了。如果你能给出一个实际的例子,我可以接受它作为答案。基本上,我想知道时间尺度目前是否缩小到天、月或年。
  var ext = x.domain();
  var duration = moment.duration(ext[1] - ext[0]).humanize();

  chart
    .select("text.duration")
    .text(duration);