javascript - 如何根据chart.js中数据的开始时间和结束时间日期选择器之间的时间间隔格式化x轴?
问题描述
您好,我是 javascript 新手。我有来自 API 的数据的 chart.js,如下所示:
.....//datepicker code......
$.ajax({
method: "GET",
url: endpoint,
data: {
startDate: startDate,
endDate: endDate
},
success: function(data){
//get data by fields
var accelero_x = [], timestamp = [];
for (var i=0; i<data.length; i++){
accelero_x.push(data[i].accelero_x);
timestamp.push(data[i].timestamp);
}
//plot the chart
var ctx = document.getElementById("accelero_xChart").getContext('2d');
var accelero_xChart = new Chart(ctx, {
type: 'line',
data: {
labels: timestamp,
datasets: [{
label: 'accelero-x (mV/g)',
data: accelero_x,
backgroundColor: [
'#ff000000'
],
borderColor: [
'#331698'
],
pointBackgroundColor: '#331698',
borderCapStyle: 'round',
borderWidth: 3
}]
},
options: {
reponsive: true,
scales: {
yAxes: [{
ticks: {
beginAtZero:false,
stepSize:0.1
},
scaleLabel: {
display: true,
labelString: 'accelero-x (mV/g)'
}
}],
xAxes: [{
display: true,
type: "time",
time: {
min: moment(startDate).toDate(),//Date object type
max: moment(endDate).toDate()//Date object type
},
scaleLabel: {
display: true,
labelString: 'Time (hour)'
}
}]
}
}
});
},
error: function(error_data){
console.log(error_data)
}
});
我的图表现在显示每 2 小时的 x 轴。但是我想要不同的格式,具体取决于日期选择器中图表中数据的时间startDate
和endDate
时间。startDate
如果我在日期选择器和日期选择器之间选择超过两天endDate
,我希望设置格式只显示日期,而不是小时。
例如,当我选择从 5 月 7 日到 5 月 8 日的日期时,x 轴将被格式化为每 2 小时(HH:MM
例如:01:00、03:00、05:00 等)。但是当我选择从 5 月 7 日到 5 月 9 日的日期时,x 轴将被格式化为日期(例如:5 月 7 日、5 月 8 日、5 月 9 日)。我怎样才能做到这一点?
解决方案
推荐阅读
- visual-studio-code - VSCode:调试>添加配置,没有任何反应
- angularjs - 如何在 socket.on() 中只输入一次
- r - 嵌套循环输出错误:下标越界
- python - 在调用模块函数时使用变量
- windows - 从调度程序任务执行 CMD
- json - 这种 JSON 格式模式是否有名称,并带有前导逗号?
- haskell - 如何使用函子或应用程序在元组列表上重写此 Haskell 函数
- android - 如何创建一个其他应用程序都可以读取但没有人可以写入的内容提供程序?
- python - 如何在 Python 3.6 中使用 seaborn 绘制 2 个图?
- c# - 单击确定后的 ContentDialog 延迟