Javascript AM4图表日期轴上的错误

Javascript AM4图表日期轴上的错误,javascript,date,amcharts,Javascript,Date,Amcharts,我正在做一张二维图表。如果日期在1945年之前,则显示的时间将提前1小时显示 在下图中,光标位于时间02:00,工具提示显示03:00。 //使用主题 am4core.useTheme(am4themes_动画); //创建图表实例 var chart=am4core.create(“chartdiv”,am4charts.XYChart); chart.paddingRight=20; //添加数据 chart.data=[{ “日期”:新的日期(1818,3,2,0,0,0), “价值”

我正在做一张二维图表。如果日期在1945年之前,则显示的时间将提前1小时显示

在下图中,光标位于时间02:00,工具提示显示03:00。

//使用主题
am4core.useTheme(am4themes_动画);
//创建图表实例
var chart=am4core.create(“chartdiv”,am4charts.XYChart);
chart.paddingRight=20;
//添加数据
chart.data=[{
“日期”:新的日期(1818,3,2,0,0,0),
“价值”:90
}, {
“日期”:新的日期(1818,3,2,1,0,0),
“价值”:102
}, {
“日期”:新的日期(1818,3,2,2,0,0),
“价值”:65
}, {
“日期”:新的日期(1818,3,2,3,0,0),
“价值”:125
}, {
“日期”:新的日期(1818,3,2,4,0,0),
“价值”:55
}];
//创建轴
var dateAxis=chart.xAxes.push(新的am4charts.dateAxis());
dateAxis.renderer.minGridDistance=50;
dateAxis.renderer.grid.template.location=0.5;
dateAxis.0=0.5;
dateAxis.endLocation=0.5;
chart.dateFormatter.dateFormat=“yyyy-MM-dd-HH:MM”;
//创造价值轴
var valueAxis=chart.yAxes.push(新的am4charts.valueAxis());
//创建系列
var lineSeries=chart.series.push(新的am4charts.lineSeries());
lineSeries.dataFields.valueY=“value”;
lineSeries.dataFields.dateX=“日期”;
lineSeries.strokeWidth=3;
lineSeries.showOnInit=false;
lineSeries.tooltipText=“{date}:[b]{valueY}[/]”;
chart.cursor=新的am4charts.XYCursor()
正文{
字体系列:-苹果系统、BlinkMacSystemFont、“Segoe UI”、Roboto、Helvetica、Arial、无衬线、“苹果颜色表情”、“Segoe UI表情”、“Segoe UI符号”;
}
#沙特迪夫{
宽度:100%;
高度:300px;
}

您试过这些吗

chart.dateFormatter.timezoneOffset=300;

chart.dateFormatter.utc=true;

我花了一些时间才弄明白:

解决方案是更改提供给
chart.data
from的日期

new Date(1818, 3, 2, 0, 0, 0)

同时也设置

chart.dateFormatter.utc = true
现在,轴和数据点从同步的
00:00
开始。
我在多个时区测试了我的解决方案,得到了相同的结果

//使用主题
am4core.useTheme(am4themes_动画);
//创建图表实例
var chart=am4core.create(“chartdiv”,am4charts.XYChart);
chart.paddingRight=20;
//添加数据
chart.data=[{
“日期”:新日期(UTC日期(1818,3,2,0,0,0)),
“价值”:90
}, {
“日期”:新日期(UTC日期(1818,3,2,1,0,0)),
“价值”:102
}, {
“日期”:新日期(UTC日期(1818,3,2,2,0,0)),
“价值”:65
}, {
“日期”:新日期(UTC日期(1818,3,2,3,0,0)),
“价值”:125
}, {
“日期”:新日期(UTC日期(1818,3,2,4,0,0)),
“价值”:55
}];
//创建轴
var dateAxis=chart.xAxes.push(新的am4charts.dateAxis());
dateAxis.renderer.minGridDistance=50;
dateAxis.renderer.grid.template.location=0.5;
dateAxis.0=0.5;
dateAxis.endLocation=0.5;
chart.dateFormatter.dateFormat=“yyyy-MM-dd-HH:MM”;
chart.dateFormatter.utc=true
//创造价值轴
var valueAxis=chart.yAxes.push(新的am4charts.valueAxis());
//创建系列
var lineSeries=chart.series.push(新的am4charts.lineSeries());
lineSeries.dataFields.valueY=“value”;
lineSeries.dataFields.dateX=“日期”;
lineSeries.strokeWidth=3;
lineSeries.showOnInit=false;
lineSeries.tooltipText=“{date}:[b]{valueY}[/]”;
chart.cursor=新的am4charts.XYCursor()
正文{
字体系列:-苹果系统、BlinkMacSystemFont、“Segoe UI”、Roboto、Helvetica、Arial、无衬线、“苹果颜色表情”、“Segoe UI表情”、“Segoe UI符号”;
}
#沙特迪夫{
宽度:100%;
高度:300px;
}


谢谢您的回答,是的,尝试过了,但没有成功。看看您的代码片段结果,错误变得更严重了@hmdd抱歉,我认为只有差异需要纠正。现在好点了吗?关键是,一个人应该能够根据自己的喜好调整这两个偏移量。谢谢,它似乎变得更好了。它与现在的时间匹配,但显示的时间不正确!你能解决这个问题吗?它对我有帮助。所以这取决于时区。但当我在不同的时区进行测试时,我也得到了截然不同的结果,即使使用
utc=true
。它依赖于用户时区,即使根据文档不应该这样做……有什么解决方案吗?
chart.dateFormatter.utc = true