Javascript 在d3中获取ISO周日和一年中的周
我正在尝试使用d3.js创建日历热图。但是我需要在周一开始一周,而不是在默认日历热图中的周日。那么,有没有办法以ISO格式获取一年中的一周和一周中的一天呢Javascript 在d3中获取ISO周日和一年中的周,javascript,d3.js,Javascript,D3.js,我正在尝试使用d3.js创建日历热图。但是我需要在周一开始一周,而不是在默认日历热图中的周日。那么,有没有办法以ISO格式获取一年中的一周和一周中的一天呢 var rect = svg.selectAll(".day") .data(function (d) { return d3.time.days(new Date(d, 0, 1), new Date(d + 1, 0, 1)); }) .enter().append
var rect = svg.selectAll(".day")
.data(function (d) {
return d3.time.days(new Date(d, 0, 1), new Date(d + 1, 0, 1));
})
.enter().append("rect")
.attr("class", "day")
.attr("width", cellSize)
.attr("height", cellSize)
.attr("x", function (d) {
return d3.time.weekOfYear(d) * cellSize;
})
.attr("y", function (d) {
return d.getDay() * cellSize;
})
上述代码中计算周日和周年的代码为
d.getDay() and d3.time.weekOfYear(d)
分别根据
weekOfYear是sundayOfYear的别名
因此,在我看来,你寻求的解决方案只是改变你现在拥有的:
d3.time.sundayOfYear(date)
为此:
d3.time.mondayOfYear(date)
知道了。对getDay进行了一些修改以制作ISO日历。d3
mondayOfYear
中的iso日历链接不会生成iso周数,因为第一个iso 8601周包含第一个星期四。