在 Chart.js 中使用 utcoffset 时遇到问题
Trouble using utcoffset with Chart.js
我正在尝试将 Chart.js 与日期时间 x 轴一起使用,我需要通过减去 5 小时来调整我的所有值。这是我的一些代码:
var timeFormat = 'MM/DD HH:mm';
time: {
format: timeFormat,
tooltipFormat: 'll',
parser: function(utcMoment) {
return moment(utcMoment).utcOffset(5, true);
}
},
没有解析器功能,我的值是正常的(2021 年 1 月 10 日 10:00),但是有了解析器功能,由于某种原因,我的值一直设置到 2001 年。是的,两千- and-one.(10:00, January 10, 2001) 注意时间实际上并没有改变(所以两个错误: 1.time 不应该调整。 2:years 不应该调整是)。为什么会这样?
我假设您想将其回滚 5 小时的原因是时区差异。如果是这种情况,您应该使用 moment-timezone
而不是 moment
.
话虽如此,从当前日期减去 5 小时实际上比您正在做的要简单。
在将日期输入 moment
之前,您需要将其转换为 js 日期对象,如下所示:new Date('2021-01-10 00:00:00')
。由于您的解析器函数接受 m/d H:M
格式的日期,因此您需要先将年份附加到它。
你的代码应该是这样的:
parser: function(utcMoment) {
const new_date = utcMoment.split(' ')[0] + '/' + (new Date().getFullYear()) + ' ' + utcMoment.split(' ')[1];
return moment(new Date(new_date)).subtract({hours: 5})
}
我正在尝试将 Chart.js 与日期时间 x 轴一起使用,我需要通过减去 5 小时来调整我的所有值。这是我的一些代码:
var timeFormat = 'MM/DD HH:mm';
time: {
format: timeFormat,
tooltipFormat: 'll',
parser: function(utcMoment) {
return moment(utcMoment).utcOffset(5, true);
}
},
没有解析器功能,我的值是正常的(2021 年 1 月 10 日 10:00),但是有了解析器功能,由于某种原因,我的值一直设置到 2001 年。是的,两千- and-one.(10:00, January 10, 2001) 注意时间实际上并没有改变(所以两个错误: 1.time 不应该调整。 2:years 不应该调整是)。为什么会这样?
我假设您想将其回滚 5 小时的原因是时区差异。如果是这种情况,您应该使用 moment-timezone
而不是 moment
.
话虽如此,从当前日期减去 5 小时实际上比您正在做的要简单。
在将日期输入 moment
之前,您需要将其转换为 js 日期对象,如下所示:new Date('2021-01-10 00:00:00')
。由于您的解析器函数接受 m/d H:M
格式的日期,因此您需要先将年份附加到它。
你的代码应该是这样的:
parser: function(utcMoment) {
const new_date = utcMoment.split(' ')[0] + '/' + (new Date().getFullYear()) + ' ' + utcMoment.split(' ')[1];
return moment(new Date(new_date)).subtract({hours: 5})
}