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

React Highcharts中如何将ISO日期字符串转为毫秒级时间戳

ISO日期转Highcharts毫秒时间戳实现方案

你拿到的2022-06-04T00:00:00.000Z是标准ISO 8601格式的UTC时间,用JS原生能力就能直接转成Highcharts datetime轴要求的毫秒级数值时间戳,不需要引入额外依赖。

  • 单条日期转换:直接把ISO字符串传入Date构造函数,调用getTime()方法即可得到目标格式时间戳
const isoDate = "2022-06-04T00:00:00.000Z";
// 输出结果为类似1654300800000的毫秒时间戳,可直接供Highcharts使用
const timeStamp = new Date(isoDate).getTime();
  • 批量转换series数据:如果原始数据集的时间维度都是ISO字符串格式,直接遍历映射即可
// 原始数据示例,格式为[ISO日期, 指标值]
const rawSeriesData = [
  ["2022-06-04T00:00:00.000Z", 0.25],
  ["2022-06-04T04:00:00.000Z", 0.33],
  ["2022-06-04T08:00:00.000Z", 0.29]
];
// 转换为Highcharts兼容格式
const formattedData = rawSeriesData.map(item => [new Date(item[0]).getTime(), item[1]]);

另外你贴的现有配置里有两处语法错误,是复制时丢了乘号,直接运行会报错,修正后如下:

xAxis: {
    type: 'datetime',
    ordinal: false,
    startOnTick: false,
    endOnTick: false,
    minPadding: 0,
    maxPadding: 0,
    Date: false,
    tickInterval: 4 * 3600 * 1000, // 补全乘号,代表4小时的刻度间隔
    minRange: 1 * 24 * 3600000, // 补全乘号,代表最小缩放范围为1天
    dateTimeLabelFormats: {
        day: '%l %P',
        hour: '%l %P'
    },
    offset: 0,
},

series: [
    {
        "data": formattedData, // 传入转换完成的数据即可
        color: '#FFA749',
    },
],

注意:原始日期字符串末尾的Z代表UTC零时区,该转换方法得到的时间戳不会带本地时区偏差,直接传入Highcharts即可按预期渲染,不需要额外做时区偏移计算。

内容的提问来源于stack exchange,提问作者Bhautik Bhalani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 12:09:11