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

如何配置FusionCharts时间格式以正确解析含秒的时间戳?

问题解决:图表时间戳解析错误显示1970年时间

核心问题

时间轴显示1970年的根源是schema中的日期格式字符串错误:

  • 你用%-m表示分钟,但该格式符实际用于解析月份;分钟的正确格式符是%M
  • %I是12小时制小时,而你的数据用的是24小时制(如10:00),应改用%H

修正方案

1. 修正Schema的日期格式

针对你的时间戳格式2001-01-31 00:00:00.000,正确格式字符串如下:

let schema = [{
    'name': 'Time',
    'type': 'date',
    'format': '%Y-%m-%d %H:%M:%S.%L'
},{
    'name': 'value1',
    'type': 'number'
}]

格式符说明:

  • %H:24小时制小时(00-23)
  • %M:分钟(00-59)
  • %S:秒(00-59)
  • %L:毫秒(000-999)

如果数据存在不带毫秒的情况(如示例中的2023-11-28 10:00:00),可改用可选格式兼容两种情况:%Y-%m-%d %H:%M:%S%.%L

2. 直接传递Date对象(更可靠)

若格式解析仍有问题,可提前将时间字符串转为Date对象再传入:

// 预处理数据,转换时间格式
let processedData = data.map(item => {
    // 若为ASP.NET返回的UTC时间,需在字符串末尾加"Z"或用Date.UTC处理
    return [new Date(item[0]), item[1]];
});

// 此时Schema可省略format配置
let schema = [{
    'name': 'Time',
    'type': 'date'
},{
    'name': 'value1',
    'type': 'number'
}]

3. 使用标准ISO 8601格式

将时间字符串改为2001-01-31T00:00:00.000Z(UTC)或2001-01-31T00:00:00.000+02:00(GMT+2时区),多数图表库可自动识别该格式,无需额外配置format。

验证要点

  • 在控制台测试单个时间字符串的解析结果,比如执行d3.timeParse("%Y-%m-%d %H:%M:%S.%L")("2023-11-28 10:00:00.000")(若基于D3类图表库),确认是否返回正确Date对象
  • 检查ASP.NET返回的时间字符串是否带时区偏移,避免因时区差导致解析偏差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 01:33:23