【问题标题】:highcharts - show by monthhighcharts - 按月显示
【发布时间】:2016-02-27 04:26:34
【问题描述】:

highcharts by month 没有正确的标签,什么时候是一个月。

当是 2 个月时,xAxis 中的标签是 2016 年 1 月和 2016 年 2 月,但只有一个月时,标签是 04:59:59:999 正常:https://jsfiddle.net/rcondori/c3y1r7sn/

series: [{
    data: [{
      name: "January",
      x: 1451624399999,
      y: 52
    }, {
      name: "February",
      x: 1454302799999,
      y: 60
    }]
  }
]

不好:https://jsfiddle.net/rcondori/c3y1r7sn/1/

series: [{
    data: [{
      name: "January",
      x: 1451624399999,
      y: 52
    }
]

请帮帮我。

【问题讨论】:

  • 所以你总是想显示“月-年”(如“2016 年 1 月”)?
  • 是的,我想使用“月-年”,还有其他可能吗?
  • 很好,你能接受答案吗:)

标签: javascript highcharts


【解决方案1】:

您可以使用以下选项:

  1. 选项 1 使用 Highcharts API(查看example):

Highcharts.dateFormat 允许您设置日期格式(有关更多详细信息,请查看此link

labels: {
formatter: function() {
return Highcharts.dateFormat('%B-%Y', this.value);
}
}
  1. 选项 2: 使用JS方法:

查看下方

var temp = new Date(this.value);
          locale = "en-ca",
            month = temp.toLocaleString(locale, {
              month: "long"
            });
          return month + '-' + temp.getFullYear();  

通过将变量 temp 设置为新日期 (this.value),您可以访问 x 值(在本例中为日期)。 month=a.toLocalString 允许您使用字母而不是数字来获取月份。 这里example

$(function() {
  $('#container').highcharts({
    xAxis: {
      type: 'datetime',
      labels: {
        formatter: function() {
          var temp = new Date(this.value);
          locale = "en-ca",
            month = temp.toLocaleString(locale, {
              month: "long"
            });
          return month + '-' + temp.getFullYear();
        }
      }

    },



    series: [{
        data: [{
          name: "January",
          x: 1451624399999,
          y: 52
        }]
      }

    ]
  });
});

【讨论】:

  • 我使用了第一个选项。非常感谢你=)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 2016-06-01
  • 1970-01-01
相关资源
最近更新 更多