我通过here检查周数。我检查了第29周是从2015年7月12日到2015年7月18日。但是在morris图表中,w29是2015年7月19日至25日。我在哪里可以快速纠正这个问题?
// JS
var line = new Morris.Line({
element: 'line-chart',
resize: true,
data: result_week,
xkey: 'week',
ykeys: ['price'],
labels: ['Price'],
xLabels: ['week'],
lineColors: ['#3c8dbc'],
hideHover: 'auto',
smooth: false
});
此外,任何方式都可以将x轴标签显示为' 2015-W29'而不是日期格式?
请指教。谢谢。
更新: 我在减去第-1周的时候改变了morris.js,我知道它在-1之前是不对的。但是仍然希望能有更好的解决方案。问题仍然存在!感谢。
"week": {
span: 604800000,
start: function(d) {
return new Date(d.getFullYear(), d.getMonth(), d.getDate());
},
fmt: function(d) {
// return "" + (d.getFullYear()) + "-" + (Morris.pad2(d.getMonth() + 1)) + "-" + (Morris.pad2(d.getDate()));
Date.prototype.getWeek = function() {
var onejan = new Date(this.getFullYear(), 0, 1);
return Math.ceil((((this - onejan) / 86400000) + onejan.getDay() + 1) / 7);
}
return "" + (d.getFullYear()) + " W" + (Morris.pad2(d.getWeek() - 1));
},
incr: function(d) {
return d.setDate(d.getDate() + 7);
}
},
答案 0 :(得分:1)
一种方法是provide your own hoverCallback()
function:
提供此选项的功能以生成自定义悬停图例。 该函数将使用悬停图例下的行索引,作为参数传递给构造函数的options对象,包含默认生成的悬停图例内容HTML的字符串,以及包含传入的行的原始数据的对象数据选项。
在该功能中,您可以调整显示的周数(完全覆盖content
或仅修改周数)。
答案 1 :(得分:0)
我发现了同样的问题。您可以解决定义自己的 dateFormat 和 xLabelFormat 函数的问题。
这些函数为您提供unix纪元时间作为唯一参数。对于X轴使用周数,unix纪元时间将是错误的:您必须减去7天(如您所知)。
绝对不是解决方案,但它不需要对主库进行任何更改。 希望有人能尽快解决这个问题。