xAxis doit afficher 24 heures

Bonjour,
Je suis en train de faire un graphique highcharts sur 24 heures. Je voudrais que xAxis affiche les 24 heures avec un intervalle de 1 heure qui commencerais à la date du jour à 0h et se terminerais à la date du jour + 1 jour à 0h. Mon graphique change de date de jour tout les jours à 0h. Pour déterminer la date dé début et la date de fin, j’ai créé deux variables PHP $début $fin. je pense que ça doit être possible en javascript, mais je ne sais pas comment faire. A savoir que me données sont extraites d’une base de données.

function comArr(unitsArray) {
  var outarr = [];
  for (var i = 0; i < DHT.length; i++) {
    outarr[i] = [DHT[i], unitsArray[i]];
  }
  return outarr;
}

$(function() {
  Highcharts.setOptions({
    lang: {
      months: ['Janvier', 'Fvrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
      weekdays: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
      shortMonths: ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Juin', 'Juil', 'Août', 'Sept', 'Oct', 'Nov', 'Déc'],
      decimalPoint: ',',
      resetZoom: 'Reset zoom',
      resetZoomTitle: 'Reset zoom  1:1',
      contextButtonTitle: 'Menu contextuel du graphique',
      viewFullscreen: 'Voir le graphique en plein écran',
      downloadPNG: "Télécharger au format PNG image",
      downloadJPEG: "Télécharger au format JPEG image",
      downloadPDF: "Télécharger au format PDF document",
      downloadSVG: "Télécharger au format SVG vector image",
      printChart: "Imprimer le graphique",
      loading: "Chargement en cours...",
      rangeSelectorFrom: "Du",
      rangeSelectorTo: "Au"
    }
  });

  chart = new Highcharts.Chart({
      chart: {
        renderTo: 'temperature',
        zoomType: 'x',
        type: 'spline',
        marginRight: 10,
        marginBottom: 60,
        plotBorderColor: '#346691',
        plotBorderWidth: 1,
      },

      title: {
        text: '<?php  echo " Radiation solaire du ". $date; ?>',
        align: 'center',
      },

      subtitle: {
        text: 'Source : Météo Jarny',
        align: 'center',
      },

      credits: {
        text: '© Météo Jarny',
        href: ''
      },

      legend: {
        align: 'center',
        verticalAlign: 'center',
        x: 0,
        y: 515,
        borderColor: 'royalblue',
        borderWidth: 1,
        borderRadius: 5,
        backgroundColor: {
          linearGradient: [0, 0, 0, 20],
          stops: [
            [0, '#FFFFDD'],
            [1, '#CAEEFF'],
          ]
        },
        layout: 'horizontal',
        shadow: true,
      },

      time: {
        getTimezoneOffset: function(timestamp) {
          var zone = 'Europe/Paris',
            timezoneOffset = -moment.tz(timestamp, zone).utcOffset();
          return timezoneOffset;
        },
        timezone: 'Europe/Paris',
        //timezoneOffset:0
        useUTC: false,
      },

      xAxis: {
        type: 'datetime',
        tickInterval: 3600 * 1000,
        alternateGridColor: '',
        gridLineColor: '#BDBDBD',
        gridLineWidth: 0.5,
        startOnTick: false,
      },

      yAxis: {
        title: {
          text: null,
        },
        labels: {
          formatter: function() {
            return this.value + ' W/m²';
          },
        },
        plotLines: [{
          value: 0,
          width: 1.5,
          color: '#FFFF00'
        }]
      },

      tooltip: {
        animation: true,
        shared: true,
        crosshairs: true,
        enabled: true,
        followPointer: true,
        split: true,
        valueDecimals: 1,
        borderColor: 'royalblue',
        borderWidth: 1,
        backgroundColor: '#2E2E2E',
        dateTimeLabelFormats: {
          day: "%A %e %B %Y",
          hour: "%A %e %B %Y à %Hh %Mmn",
          millisecond: "%A %e %B %Y à %H:%M:%S.%L",
          minute: "%a %e %B %Y à %Hh %Mmn",
          month: "%B %Y",
          second: "%A %e %B %Y à %Hh %Mmn %Ss",
          week: "Semaine depuis %A %e %b %Y",
          year: "%Y",
        },
        headerFormat: '<table cellspacing="2" cellpadding="0" style="font-size:12px"><tr><td colspan="4" class="TD_Header_Tooltip">{point.x:%A %e %B %Y à %Hh %Mmn}</td></tr>',
        xDateFormat: "%A %e %B à %Hh %Mmn",
      },

      plotOptions: {
        series: {
          marker: {
            enabled: false
          }
        }
      },

      series: [{
        name: 'Radiation solaire',
        type: 'areaspline',
        color: '#FF0000',
        lineWidth: 0.5,
        fillColor: {
          linearGradient: [0, 0, 0, 250],
          stops: [
            [0, 'rgb(255, 0, 0)'],
            [1, 'rgb(255,255,0)']
          ]
        },
        data: comArr(solar),
        tooltip: {
          pointFormatter: function() {
            var s = '<tr><td align="left"><br /><span style="color:' + [this.color] + '">u25CF </span>' + [this.series.name] + '</td>'
            s = s + '<td align="center">: </td>'
            s = s + '<td align="right"><b>' + Highcharts.numberFormat(this.y, 1, ",", " ") + '</b></td>'
            s = s + '<td align="left"> W/m²</td></tr>';
            return s;
          },
        },
      }, ]
    },

    function(chart) { // on complete
      chart.renderer.image('', 8, 8, 102, 50)
        .add()
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>