You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何将YYYY-MM格式转为英文月份-短年格式供Highcharts使用

实现方案

直接拆分字符串处理是兼容性最好的方案,可避免Date对象解析YYYY-MM格式时的时区偏移问题,处理完成的结果可以直接传入Highcharts的categories配置项使用。

核心步骤

  • 预定义英文月份全称数组,数组索引对应「月份数字-1」(月份值从1开始,数组索引从0开始)
  • 遍历原始数据集,拆分每个monthDate字段的年份、月份部分
  • 按要求拼接为「英文月份全称-两位年份」格式,最终生成分类数组
  • 将分类数组传入Highcharts配置,同时可直接提取原数据集的count字段作为图表系列数据

完整实现代码

// 原始数据集
var dataset = [
  {"monthDate": "2018-05", "count": 83},
  {"monthDate": "2018-06", "count": 23}
  // 其余同格式数据...
];

// 英文月份全称映射表
const monthNameMap = [
  "January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];

// 生成Highcharts所需的分类数组
const chartCategories = dataset.map(function(item) {
  const dateParts = item.monthDate.split('-');
  const yearStr = dateParts[0];
  const monthNum = parseInt(dateParts[1], 10);
  // 拼接目标格式
  return monthNameMap[monthNum - 1] + '-' + yearStr.slice(-2);
});

// Highcharts初始化配置
Highcharts.chart('chartContainer', {
  xAxis: {
    categories: chartCategories // 传入处理好的分类
  },
  series: [{
    name: '统计值',
    data: dataset.map(function(item) {
      return item.count;
    })
  }]
  // 其余图表配置项按需求添加即可
});

效果说明

上述代码处理后,2018-05会被转换为May-18,2018-06会被转换为June-18,完全符合需求格式,不需要额外引入第三方日期处理库。

内容的提问来源于stack exchange,提问作者Devraj Parida

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 08:57:20