Javascript d3返回错误的周开始时间

Javascript d3返回错误的周开始时间,javascript,d3.js,Javascript,D3.js,如果我有以下日期:2015-23格式为%Y-%W,即2015年第23周(2015年6月1日-2015年6月7日) 当我使用d3中的format方法返回该周的日期时: var cameron=d3.time.format(“%Y-%W”).parse cameron('2015-23') 它返回2015年6月8日星期一00:00:00 GMT+0100(英国夏令时) 但我应该得到:2015年6月1日星期一00:00:00 GMT+0100(英国夏令时) 根据位于的文档:%W应该是一年中的周数(周一

如果我有以下日期:
2015-23
格式为
%Y-%W
,即2015年第23周(2015年6月1日-2015年6月7日)

当我使用d3中的format方法返回该周的日期时:

var cameron=d3.time.format(“%Y-%W”).parse

cameron('2015-23')

它返回2015年6月8日星期一00:00:00 GMT+0100(英国夏令时)

但我应该得到:
2015年6月1日星期一00:00:00 GMT+0100(英国夏令时)


根据位于的文档:
%W
应该是一年中的周数(周一为一周的第一天)作为十进制数字[00,53]。
但是它向前跳了一周

这是预期的结果。据迈克·博斯托克说:

d3时间格式使用的%W指令不是ISO周日期;在[00,53]中,这是一年中从零开始的星期一。这意味着任何一年中的第一个星期一总是第一个;同年第一个星期一之前的任何日期均为0

“ISO周日期”指的是(ISO 8061):

因此,他仍然认为:

  • 2015-00是2014年12月29日星期一
  • 2015-01年为2015年1月5日星期一
  • 2015-52和2016-00为2015年12月28日星期一
  • 2015-53和2016-01是2016年1月4日星期一

我无法控制接下来的几周。。。那么解决办法是什么呢?在解析之前,只需从周数中提取子项1?您可以这样做,或者使用其他库/方法获取ISO周。