Для тех, у кого есть подобные проблемы в будущем, я собрал несколько найденных решений.
Во-первых, отсюда Метка времени Unix в JavaScript , я написал метод:
getTimeString: function(dateString) {
var hours = new Date(dateString).getHours();
var mins = new Date(dateString).getMinutes();
return Math.round((new Date("1970-02-01 " + hours + ":" + mins)).getTime());
}
Важная часть здесь - убедиться, что у вас тот же день.Если этого не сделать, график ChartJS будет отображать время в разных местах на оси Y, даже если часы одинаковы.
Тогда из этот вопрос StackOverFlow и связанный с ним плункерВ опциях графика у меня есть:
{
responsive: true,
maintainAspectRatio: false,
scales: {
yAxes: [{
position: 'left',
ticks: {
callback: value => {
let date = moment(value);
if (date.diff(moment('1970-02-01 23:59:59'), 'minutes') === 0) {
return null;
}
return date.format('H:mm');
},
stepSize: 3.6e+6
}
}]
}, //end scales
tooltips: {
callbacks: {
label: function(toolTipItem, data) {
let date = moment(toolTipItem.yLabel);
if (date.diff(moment('1970-02-01 23:59:59'), 'minutes') === 0) {
return null;
}
return date.format('H:mm');
}
}
}
}
Обратите внимание на обратные вызовы.Они будут форматировать время, вычисляя разницу от установленного времени до времени, которое вам нужно построить.В первой функции вы можете использовать любой день, это не имеет значения, если это один и тот же день.StepSize будет отображать почасовые интервалы по оси Y.