【问题标题】:HighCharts Date formatHighCharts 日期格式
【发布时间】:2016-11-18 01:09:00
【问题描述】:

我有一个应用程序返回 JSON 日期给我,我显示在 Highcharts 条形图上。 x 轴的字段是日期,它从服务器返回是 JSON 格式,例如:"date":"2016-11-15T00:00:00.000Z"

我想将 x 轴上的日期显示为 2016-11-15,或者更好的是,以本地日期格式显示,在本例中为 2016-11-14,因为它是 GMT-5小时。

我已阅读文档,但它似乎不起作用。任何帮助表示赞赏!

【问题讨论】:

  • 您好,您解决了 x 轴上的 GMT-5 小时问题吗?

标签: javascript json highcharts


【解决方案1】:

您可以使用 Date 构造函数将 ISO 字符串日期解析为 js 日期。然后以毫秒为单位获取时间戳 - 这是 Highcharts 所需的格式。

new Date("2016-11-15T00:00:00.000Z").getTime(),

在格式属性中,您可以定义日期的显示方式。

 xAxis: {
  type: 'datetime',
  labels: {
    format: '{value:%Y-%m-%d}',
  }
},

示例:http://jsfiddle.net/akehpzq4/4/

有关当地时间,请参阅useUTC 选项。

【讨论】:

  • 效果很好!!非常感谢!
【解决方案2】:

您可以使用此函数返回格式日期

function ReadDate(dateTM) {
    var date = new Date(parseInt(dateTM.replace("/Date(", "").replace(")/", ""), 10));
    if (date.getFullYear() > 1 && date.getFullYear() != 1900) {
        return (date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear());
    } else return ""
}

您可以通过此链接阅读指南How do I format a Microsoft JSON date?

【讨论】:

  • 是的,这行得通。但是如何在 highchart 中调用该函数呢?我希望 x 轴上的所有日期都使用该功能。非常感谢您的帮助!
  • 为什么是date.getFullYear() != 1900
  • xAxis: { categories: ReadDate(value), tickmarkPlacement: 'on', title: { enabled: false } },
  • @RobG 我捕获值为 Null,你不必这样做
猜你喜欢
  • 1970-01-01
  • 2017-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多