使用D3.js构建平面日历

时间:2019-04-22 15:31:27

标签: d3.js

无法遵循这些数字在代码片段中的含义。源代码位于link

if ((maxExtent - minExtent) > **1468800000**) {
        x1DateAxis.ticks(d3.time.mondays, 1).tickFormat(d3.time.format('%a %d'))
        x1MonthAxis.ticks(d3.time.mondays, 1).tickFormat(d3.time.format('%b - Week %W'))        
    }
    else if ((maxExtent - minExtent) > **172800000**) {
        x1DateAxis.ticks(d3.time.days, 1).tickFormat(d3.time.format('%a %d'))
        x1MonthAxis.ticks(d3.time.mondays, 1).tickFormat(d3.time.format('%b - Week %W'))
    }
    else {
        x1DateAxis.ticks(d3.time.hours, 4).tickFormat(d3.time.format('%I %p'))
        x1MonthAxis.ticks(d3.time.days, 1).tickFormat(d3.time.format('%b %e'))
    }

1 个答案:

答案 0 :(得分:0)

此代码指定在日期线/轴上放置刻度(单位)的间隔,以及每个刻度的标签格式。该线所代表的周期越长,该行上的刻度线的粒度就越粗。

1468800000是17天的毫秒数,172800000是2天的毫秒数。因此,跨越少于2天的日期线,跨越2到17天的日期线以及跨越17天的日期线将获得不同的刻度间隔和标签。 (嗯,在这种情况下,2-17天和> 17天的标签将采用相同的格式,但刻度线的间隔将不同。)