我想将一个图表配置为具有不同的时区(例如我在utc + 00中显示并希望以utc + 01显示数据)
有办法吗?根据文档,我必须返回一个时刻对象,然后根据时刻全局区域显示日期。
答案 0 :(得分:4)
在时间配置选项中,将parser
指定为函数:
scales: {
xAxes: [{
type: 'time',
time: {
unit: 'hour',
min: minDate,
max: maxDate,
displayFormats: {
hour: 'HH'
},
parser: function (utcMoment) {
return utcMoment.utcOffset('+0100');
}
}
}]
除转换图表值外,这也适用于x轴的最小值/最大值。
这假设您的最小/最大值和标签数组填充了时刻对象。如果处理日期对象,那么函数需要先将日期转换为片刻。
parser: function(date) {
return moment(date).utcOffset('+0100');
}
答案 1 :(得分:1)
我在 ticks 函数上使用回调。这样您只需更改标签。
import Moment from 'moment';
//...
const options = {
scales: {
xAxes: [{
type: 'time',
ticks: {
callback: (label, index, ticks) => {
const format = 'DD HH'; // Change how you please
return new Moment(ticks[index].value)
.utcOffset(this.timeZoneOffsetSeconds / 60)
.format(format);
}
}
}]
},
// other options removed for clarity
};
this.chart = new Chart(chartElem, {
options: options,
// other parameters removed for clarity
});
注意示例:Moment 已弃用,显然有更好的库,但这就是我的代码库中的内容,所以...