如果我有以下日期: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');
返回Mon Jun 08 2015 00:00:00 GMT+0100 (BST)
但我应该得到:Mon Jun 01 2015 00:00:00 GMT+0100 (BST)
根据以下文档:https://github.com/d3/d3-3.x-api-reference/blob/master/Time-Formatting.md %W
应该是week number of the year (Monday as the first day of the week) as a decimal number [00,53].
但是相反它会提前一周!
答案 0 :(得分:2)
这是预期的结果。根据迈克博斯托克的说法:
d3-time-format使用的%W指令不是ISO周日期;它是[00,53]中从零开始的星期一。这意味着任何给定年份的第一个星期一总是1号;在同一年的第一个星期一之前的任何日期是0。
按照ISO周日和#34;,他的意思是(ISO 8061):https://en.wikipedia.org/wiki/ISO_week_date
所以,仍然按照他的说法: