Chart.js 向时间轴的日期对象添加小时和分钟

Chart.js 向时间轴的日期对象添加小时和分钟,chart.js,Chart.js,我在使用时间格式时遇到问题。如你所见,我从给定的分钟到小时计算。现在,我需要将前一天的时间“添加”到这些分钟/小时中,并有一个标有天和HH:mm的适当轴,例如:对于startime var starttime=new Date('2020-03-12T11:00:00'),我不再添加小时以获得下一天的新日期,因为我将添加到24小时!我不知道该怎么做。实际上,你可以总结一下向日期对象添加小时和分钟的问题,如果你添加24小时,它会给出第二天的时间 因此,从下面的图表中,你可以看到例如11:20的时间

我在使用时间格式时遇到问题。如你所见,我从给定的分钟到小时计算。现在,我需要将前一天的时间“添加”到这些分钟/小时中,并有一个标有天和HH:mm的适当轴,例如:对于startime var starttime=new Date('2020-03-12T11:00:00'),我不再添加小时以获得下一天的新日期,因为我将添加到24小时!我不知道该怎么做。实际上,你可以总结一下向日期对象添加小时和分钟的问题,如果你添加24小时,它会给出第二天的时间

因此,从下面的图表中,你可以看到例如11:20的时间。我想在这一小时加上开始时间日期('2020-03-12T11:00:00')以获得当天22点(我想是晚上10点)或23小时我获得次日上午10点:日期('2020-03-13T10:00:00')

var ctx=document.getElementById('myChart');
var HourLabels=[];
MinLables=[54、83、155、192、206、238、285、307、335、367、431、444、495、548、604、651、680、721、777、789、859、936、980、1004、1047、1089、1122、1135、1200、1245、1323、1381、1396]
函数parseMinToHours(x){
分钟=x;
var m=分钟%60;
var h=(分钟-m)/60;
var HHMM=h.toString()+“:”+(m<10?:“)+m.toString();
返回HHMM;
};
函数getHoursLabels(){

对于(var i=0;i 代码可以大大简化,如下例所示

使用Chart.js控制标签的格式

var ctx=document.getElementById('myChart');
var HourLabels=[];
var MinLables=[54、83、155、192、206、238、285、307、335、367、431、444、495、548、604、651、680、721、777、789、859、936、980、1004、1047、1089、1122、1135、1200、1245、1323、1381、1396]
for(设i=0;i

这是很容易实现的,这正是Chart.js所期望的时间格式

代码可以大大简化,如下例所示

使用Chart.js控制标签的格式

var ctx=document.getElementById('myChart');
var HourLabels=[];
var MinLables=[54、83、155、192、206、238、285、307、335、367、431、444、495、548、604、651、680、721、777、789、859、936、980、1004、1047、1089、1122、1135、1200、1245、1323、1381、1396]
for(设i=0;i


这里似乎有很好的文档记录-您也可以使用回调这里似乎也有很好的文档记录-您也可以使用回调谢谢我找到了一个很好的解决方案。但是它不起作用,因为“时刻没有定义”。我使用chart.bundle.min.js,但它似乎没有时间…虽然它应该像其他语言一样,在那里你可以导入一个包?但无论如何,谢谢!如果你知道如何使用它,你可以展示chart.js有多容易。-)chart.js捆绑了解释日期时间的时间,但不会公开它。如果你不想的话o在代码中的其他地方使用它。您需要单独包含它,并使用非捆绑版本的Chart.js。请参阅我的代码片段(上面),我就是在那里这样做的。Chart.js:“the Moment.js version”
var ctx = document.getElementById('myChart');

var HourLabels = [];

MinLables = [54, 83, 155, 192, 206, 238, 285, 307, 335, 367, 431, 444, 495, 548, 604, 651, 680, 721, 777, 789, 859, 936, 980, 1004, 1047, 1089, 1122, 1135, 1200, 1245, 1323, 1381, 1396]

function parseMinToHours(x) {
  MINUTES = x;

  var m = MINUTES % 60;

  var h = (MINUTES - m) / 60;

  var HHMM = h.toString() + ":" + (m < 10 ? "0" : "") + m.toString();

  return HHMM;
};

function getHoursLabels() {
  for (var i = 0; i < MinLables.length; i++) // not <=, only < !!!
    HourLabels.push(parseMinToHours(MinLables[i]));
};

getHoursLabels();

var myChart = new Chart(ctx, {
  type: 'line',
  data: {

    labels: HourLabels,
    datasets: [{
      label: "Messwert",
      xAxisID: 'xAxis0',
      data: [196.0, 222.0, 251.0, 272, 258, 298, 293, 235, 269, 226, 223, 242, 246, 290, 267, 261, 285, 274, 243, 200, 197, 203, 219, 269, 238, 268, 271, 280, 252, 266, 282, 296, 289, 300, 291],
      lineTension: 0,
      fill: false,
      borderColor: 'orange',
      backgroundColor: 'transparent',
      borderDash: [5, 5],
      pointBorderColor: 'orange',
      pointBackgroundColor: 'rgba(255,150,0,0.5)',
      pointRadius: 5,
      pointHoverRadius: 10,
      pointHitRadius: 30,
      pointBorderWidth: 2,
      pointStyle: 'rectRounded'
    }]
  },
  options: {
    responsive: true,
    maintainAspectRatio: false,
    legend: {
      display: true,
      position: "left",
      labels: {
        fontColor: 'rgb(255, 99, 132)'
      }
    },
    scales: {
      xAxes: [{
        id: 'xAxis0',
        type: "time", // add this!
        time: {
          parser: 'H:m',
          unit: 'hour',
          stepSize: 1,
          min: '00:00',
          max: '23:59',
          displayFormats: {
            hour: 'H', // change to uppercase 'H'.
          }
        },
      }],
      yAxes: [{
        ticks: {
          beginAtZero: true
        }
      }]
    }
  }
});