格式化highcharts日期工具提示以显示时区

时间:2019-07-02 15:23:45

标签: highcharts

我想在日期/时间工具提示上显示时区。

xDateFormat选项没有显示时区的选项。

https://jsfiddle.net/u7z28fbp/1/

例如:

当前日期工具提示显示:Friday, April 5, 2019

我希望它显示:Friday, April 5, 2019 UTC +00:00

2 个答案:

答案 0 :(得分:0)

尝试一下:

https://jsfiddle.net/q8s2jdgp/1/

Highcharts.chart('container', {

xAxis: {
    type: 'datetime'
},

tooltip: {
    xDateFormat: '%A, %B %d, %Y UTC ' + dayjs().format("Z") ,
    shared: true
},

plotOptions: {
    series: {
        pointStart: Date.UTC(2012, 0, 1),
        pointInterval: 24 * 3600 * 1000
    }
},

series: [{
    data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}, {
    data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4].reverse()
}]
});

如果要在右侧更改UTC值,则需要围绕该UTC值编写一些代码以创建变量并使用串联或插值。

我使用了day.js,这是从浏览器获取时间戳的其他方法。 get client time zone from browser

周围有一些资源可以进行日期时间格式化,我使用了以下资源:https://thoughtbot.com/blog/how-to-find-a-time-format-for-rubys-strftime

答案 1 :(得分:0)

您可以向Highcharts.dateFormats对象添加其他日期格式说明符:

Highcharts.dateFormats = {
    'Z': function(time) {
        return new Date(time).getTimezoneOffset() / 60
    }
}


Highcharts.stockChart('container', {
    ...,
    tooltip: {
        xDateFormat: '%A, %B %d, %Y UTC %Z'
    }
});

实时演示: https://jsfiddle.net/BlackLabel/kt7bucjv/

API参考: https://api.highcharts.com/class-reference/Highcharts.html#.dateFormats