咨询D3.js解析后时间戳的直接操作方法
解决方法
你不需要把时间转成字符串修改后重新解析,有两种更直接的方式将时分秒设为0:
方法一:直接操作Date对象
D3通过d3.timeParse解析得到的d3ts本质是JavaScript的Date实例,所以可以直接用Date原生方法修改时分秒:
// 将时、分、秒、毫秒都设为0 d3ts.setHours(0, 0, 0, 0);
这个操作会直接修改原d3ts对象,使其变为当天的00:00:00时刻。
方法二:使用D3的时间取整函数
D3提供了专门的时间工具函数来快速获取某一时间单位的起始时刻,比如d3.timeDay.floor()可以直接把时间向下取整到当天的起始点:
var startOfDay = d3.timeDay.floor(d3ts);
这种方法不会修改原时间对象,返回一个新的Date实例,更符合D3的使用习惯。
内容的提问来源于stack exchange,提问作者Stefan
相关产品推荐
相关产品推荐

