Javascript 如何在amcharts中设置静态默认时区
我有一个带有时间戳的数据的小数据库,在几天内。我的问题是我住在GMT+2(CEST),并且我的图表的日期轴(x)偏移错误。 如图所示,时间显示在小时的00:00(日期开关,因此显示为新的一天)和12:00上。但实际上,工具提示显示数据实际上是6小时后的数据。 我使用下面的代码生成图形,并使用php和所需格式的Javascript 如何在amcharts中设置静态默认时区,javascript,charts,amcharts,amcharts4,Javascript,Charts,Amcharts,Amcharts4,我有一个带有时间戳的数据的小数据库,在几天内。我的问题是我住在GMT+2(CEST),并且我的图表的日期轴(x)偏移错误。 如图所示,时间显示在小时的00:00(日期开关,因此显示为新的一天)和12:00上。但实际上,工具提示显示数据实际上是6小时后的数据。 我使用下面的代码生成图形,并使用php和所需格式的getTemperatures函数加载数据 am4core.ready(function() { // Themes begin am4core.useTheme(am4them
getTemperatures
函数加载数据
am4core.ready(function() {
// Themes begin
am4core.useTheme(am4themes_animated);
// Themes end
var chart = am4core.create("chart", am4charts.XYChart);
chart.dateFormatter.inputDateFormat = "yyyy-MM-dd HH:mm:ss";
chart.data = <?=json_encode(getTemperatures())?>;
// Create axes
var dateAxis = chart.xAxes.push(new am4charts.DateAxis());
dateAxis.renderer.grid.template.location = 0.5;
dateAxis.renderer.labels.template.location = 0.5;
dateAxis.renderer.minGridDistance = 60;
dateAxis.dateFormats.setKey("second", "HH:mm:ss");
dateAxis.dateFormats.setKey("minute", "HH:mm");
dateAxis.dateFormats.setKey("hour", "HH:mm");
dateAxis.dateFormats.setKey("day", "dt");
dateAxis.periodChangeDateFormats.setKey("minute", "HH:mm");
dateAxis.periodChangeDateFormats.setKey("hour", "dt");
dateAxis.periodChangeDateFormats.setKey("day", "MMMM dt");
dateAxis.periodChangeDateFormats.setKey("month", "MMMM");
dateAxis.baseInterval = {
"timeUnit": "second",
"count": 30
};
var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
// Create series
var series = chart.series.push(new am4charts.LineSeries());
series.dataFields.valueY = "temperature";
series.dataFields.dateX = "atDate";
series.tooltipText = "{dateX.formatDate('yyyy-MM-dd HH:mm:ss')}\n {temperature}"
series.tooltip.pointerOrientation = "vertical";
chart.cursor = new am4charts.XYCursor();
chart.cursor.snapToSeries = series;
chart.cursor.xAxis = dateAxis;
//chart.scrollbarY = new am4core.Scrollbar();
chart.scrollbarX = new am4core.Scrollbar();
});
am4core.ready(函数(){
//主题开始
am4core.useTheme(am4themes_动画);
//主题结束
var chart=am4core.create(“chart”,am4charts.XYChart);
chart.dateFormatter.inputDateFormat=“yyyy-MM-dd HH:MM:ss”;
chart.data=;
//创建轴
var dateAxis=chart.xAxes.push(新的am4charts.dateAxis());
dateAxis.renderer.grid.template.location=0.5;
dateAxis.renderer.labels.template.location=0.5;
dateAxis.renderer.minGridDistance=60;
dateAxis.dateFormats.setKey(“第二”,“HH:mm:ss”);
dateAxis.dateFormats.setKey(“分钟”,“HH:mm”);
dateAxis.dateFormats.setKey(“小时”,“小时:毫米”);
dateAxis.dateFormats.setKey(“day”,“dt”);
dateAxis.periodChangeDateFormats.setKey(“分钟”,“HH:mm”);
dateAxis.periodChangeDateFormats.setKey(“小时”、“dt”);
dateAxis.periodChangeDateFormats.setKey(“日”,“毫米dt”);
dateAxis.periodChangeDateFormats.setKey(“月”、“毫米”);
dateAxis.baseInterval={
“时间单位”:“秒”,
“计数”:30
};
var valueAxis=chart.yAxes.push(新的am4charts.valueAxis());
//创建系列
var series=chart.series.push(新的am4charts.LineSeries());
series.dataFields.valueY=“温度”;
series.dataFields.dateX=“atDate”;
series.tooltipText=“{dateX.formatDate('yyyy-MM-dd HH:MM:ss')}\n{temperature}”
series.tooltip.pointerooritation=“垂直”;
chart.cursor=新的am4charts.XYCursor();
chart.cursor.snapToSeries=系列;
chart.cursor.xAxis=日期轴;
//chart.scrollbarY=新的am4core.Scrollbar();
chart.scrollbarX=新的am4core.Scrollbar();
});
如何设置标准/默认时区,以解释传入数据。我真的不想把时区信息编码到我的
这样的数据会增加数据库的存储需求。您可以使用设置。@martynasma在我添加
chart.dateFormatter.timezoneOffset(120)时破坏了代码因为它是一个属性,而不是一个方法<代码>图表.dateFormatter.timezoneOffset=120