Java Primefaces折线图未显示正确的日期值(Google Chrome)
我在Google Chrome上使用Primefaces图表时遇到问题。我想根据具体日期(X轴)显示一系列值(Y轴)。不幸的是,日期(X轴)的值在Google Chrome中没有正确显示(Firefox和Internet Explorer运行良好) 下面是一个小例子来说明这个问题 xhtml:Java Primefaces折线图未显示正确的日期值(Google Chrome),java,tomcat,charts,primefaces,apache-tomee,Java,Tomcat,Charts,Primefaces,Apache Tomee,我在Google Chrome上使用Primefaces图表时遇到问题。我想根据具体日期(X轴)显示一系列值(Y轴)。不幸的是,日期(X轴)的值在Google Chrome中没有正确显示(Firefox和Internet Explorer运行良好) 下面是一个小例子来说明这个问题 xhtml: <p:chart type="line" model="#{chartViewController.chartData}" style="height: 300px"/> 到 谢谢你们的意见
<p:chart type="line" model="#{chartViewController.chartData}" style="height: 300px"/>
到
谢谢你们的意见 真正奇怪的是IE在2018年8月29日至2019年3月3日上映,而Chrome却在展示一个完全不同的日期范围?Chrome将在2017年12月9日之前启动整整一年?因此,对我来说,这毫无意义,它看起来几乎像两个完全不同的数据集。看起来您可能需要JqPlot中的numberTicks选项:我删除了tickInterval,让primefaces选择一个有效范围。不幸的是,它并没有修复它。这真的很奇怪。Chrome(谷歌)正变得很奇怪。越来越多的人走自己的路,他们的新浏览器切换到同一个“引擎”的cks上,赚了M$。。。
@Named
@ViewScoped
public class ChartViewController implements Serializable {
public LineChartModel getChartData() {
LineChartModel lineChartModel = new LineChartModel();
LineChartSeries dataSeries = new LineChartSeries();
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
dataSeries.setLabel("Data");
Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR, -200*24);
for (int i = 0; i < 200; i++) {
dataSeries.set(sdf.format(cal.getTime()), i);
cal.add(Calendar.HOUR, 24);
}
/* Add values for y axis */
lineChartModel.setLegendPosition("ne");
lineChartModel.getAxis(AxisType.Y).setLabel("Values");
lineChartModel.addSeries(dataSeries);
DateAxis axis = new DateAxis("Datum");
axis.setTickAngle(-50);
axis.setMax(sdf.format(new Date()));
axis.setTickInterval("3 weeks");
axis.setTickFormat("%d.%m.%y");
lineChartModel.getAxes().put(AxisType.X, axis);
lineChartModel.setZoom(true);
return lineChartModel;
}
}
dataSeries.set(sdf.format(cal.getTime()), i);
...
axis.setMax(sdf.format(new Date()));
dataSeries.set(cal.getTime().getTime(), i);
...
axis.setMax((new Date()).getTime());