在d3获取ISO星期几和星期几
问题描述:
我想通过使用d3.js创建一个日历热图。但我需要在周一开始星期几,而不是默认日历热点地图中的星期天。那么,有没有办法让今年和平日的周ISO格式在d3获取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("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日历。尽管如此,第一个ISO 8601星期是包含第一个星期四的那个星期,但是https://jsfiddle.net/suhailsulu/cjj395zv/ –
'mondayOfYear'不会产生ISO星期数。 – Joey
D3日期不符合ISO8601:https://github.com/d3/d3-time-format –