Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript d3时间序列刻度格式;显示格式化标签,但在单击时保留基础日期_Javascript_D3.js - Fatal编程技术网

Javascript d3时间序列刻度格式;显示格式化标签,但在单击时保留基础日期

Javascript d3时间序列刻度格式;显示格式化标签,但在单击时保留基础日期,javascript,d3.js,Javascript,D3.js,我有一个时间表,需要显示一天中每小时的计数。x数据类似于[10/01/2000 00:00,10/01/2000 01:00,…]。为了保持我的x记号清晰易读,我想删除字符串的10/01/2000部分,但数据是作为完整日期输入的,我还需要在单击该栏时保留完整日期。有没有办法做到这一点?您可以使用momentjs助手来处理日期/时间 var formatDate=函数(日期、输入格式、输出格式){ log(时刻(日期,inputFormat).format(outputFormat)); 返回时

我有一个时间表,需要显示一天中每小时的计数。
x
数据类似于
[10/01/2000 00:00,10/01/2000 01:00,…]
。为了保持我的x记号清晰易读,我想删除字符串的
10/01/2000
部分,但数据是作为完整日期输入的,我还需要在单击该栏时保留完整日期。有没有办法做到这一点?

您可以使用momentjs助手来处理日期/时间

var formatDate=函数(日期、输入格式、输出格式){
log(时刻(日期,inputFormat).format(outputFormat));
返回时刻(日期,输入格式)。格式(输出格式);
};
格式日期('10/01/2000 01:00','dd/MM/YYYY hh:MM','hh:MM')

我认为d3.time.format在这里很有用。下面使用小时-分钟

var customTimeFormat = d3.time.format("%H:%M");   

var x = d3.time.scale()
        .domain([new Date(2000, 01, 10, 0), new Date(2000, 01, 10, 12)])
        .range([0, width]);

var xAxis = d3.svg.axis()
    .scale(x)
    .tickFormat(customTimeFormat);
用于显示完整数据的SVG标题(假设您为轴提供了一个'xaxis'ID)

对于一次单击,可以使用下面的选项,您可以根据需要实现clickMe。一个简单的警告,以更好的东西看,如

 d3.select('#xaxis')
    .selectAll('.tick')
    .append("svg:title")
        .text(function(d, i) { return d });
 d3.select('#xaxis')
    .selectAll('.tick')
    .on('click',clickMe)