HighCharts不在Safari上工作,但在Firefox和Chrome上运行良好

时间:2017-08-27 15:29:34

标签: javascript date highcharts safari

我正在使用Highcharts库来显示网站上的值。我的表的xAxis是日期,在Firefox和Chrome上运行良好,但在Safari浏览器上无效。

我怀疑使用Safari的JavaScript中Date对象的解释与其他浏览器不同。

¿有些提示?

这是我的代码:

<script>
myChart = new Highcharts.chart('containerTemperatura', {
    title: {
        text: 'Evolución de la Temperatura'
    },
    xAxis: {
        type: 'datetime',
        dateTimeLabelFormats: {
            minute: '%H:%M',
            hour: '%H:%M'
        }
    },
    yAxis: {
        title: {
            text: 'ºC'
        }
    },
    series: [{
        name: 'TEMPERATURA',
        color: '#808080', 
        data:(function(){
            var data = [];
            <?php 
            for($i = 0; $i < count($ultimasLecturas); $i++){
                ?>
                // EXAMPLE: $ultimasLecturas[$i]->fechaHora = "2017-08-12 12:34:04" 
                var $fecha = new Date("<?php echo $ultimasLecturas[$i]->fechaHora;?>");

                // a compensation for different timezones
                $fechaProcesada = $fecha.getTime() + <?php echo $UTCmilseg; ?>;
                data.push([$fechaProcesada,<?php echo $ultimasLecturas[$i]->temperatura;?>]);
                <?php
            } ?>
            return data;
        })()
    }]
});
</script>

1 个答案:

答案 0 :(得分:0)

我解决了添加此JavaScript函数的问题:

function parseDate(inputTimestamp){
    var parts = inputTimestamp.split(/[ \/:-]/g);
    var dateFormated = parts[1] + "/" + parts[2] + "/" + parts[0] + " " + parts[3] + ":" + parts[4] + ":" + parts[5];
    return new Date(dateFormated);
}

改变这条线......

var $fecha = new Date("<?php echo $ultimasLecturas[$i]->fechaHora;?>");

对于这一行:

var $fecha = parseDate("<?php echo $ultimasLecturas[$i]->fechaHora;?>");