1

我有一个数组如下:

var data = [ { x: "2013-10-22T22:56:25.534Z", y: 0 }, { x: "2013-10-22T22:56:25.524Z", y: 162 }, { x: "2013-10-22T22:56:25.514Z", y: 0 } ];

等等。总共 50 个对象,每个对象都有 x 和 y 值。该数组应用于使用此人力车库绘制图表:http: //code.shutterstock.com/rickshaw/

正如您在上面看到的,x 轴应该以字符串格式显示时间戳。一切看起来都很好,但我收到一条错误消息:Uncaught x and y properties of points should be numbers instead of string and number

有谁知道,我必须如何调整人力车库以在图表的 x 轴上显示时间戳(字符串)?

更新 A: 尝试在 rickshaw 库中解决问题 正如这里所建议的(Rickshaw - js 图表库:需要字符串而不是轴上的数字),也可以添加一个涵盖字符串格式的函数。但我不知道如何完成这个适用于我的项目的格式化程序。

4

1 回答 1

1

我不是 Rickshaw javascript 库专家。从他们的示例和您的错误日志中,它看起来像 - 它需要INTEGER类型中的 X 和 Y 对象值,但在这里type for X is "String"

因此,您可以使用 INT 类型的String格式来传递时间,而不是传递时间。pass the UNIX Timestamp


要将您的日期时间转换为 Javascript 中的 Unix 时间戳,请使用Date.js插件

将普通日期转换为 unix 时间戳

只需遍历您的 X 坐标并将它们更改为 Unix TimeStamp-

var changeDateTimeToTimestamp = function(data){
    for(var key in data){
        data[key].x = new Date(data[key].x).getTime() / 1000;
    }
    return data;
}

var data = [ { x: "2013-10-22T22:56:25.534Z", y: 0 }, { x: "2013-10-22T22:56:25.524Z", y: 162 }, { x: "2013-10-22T22:56:25.514Z", y: 0 } ];
var newData = changeDateTimeToTimestamp(data);
//console.log(newData);
于 2014-07-03T07:57:42.327 回答