我有一个数组如下:
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 - js chart library: Need strings instead of numbers on axes),也可以添加一个涵盖字符串格式的函数。但我不知道如何完成这个格式化程序,它适用于我的项目。
答案 0 :(得分:1)
我不是人力车javascript图书馆专家。从他们的例子和&你的错误日志,它看起来像 - 它期望X& Y INTEGER
类型中的Y对象值,但此处为type for X is "String"
。
因此,不是以String
格式传递时间,而是pass the UNIX Timestamp
- 这是INT类型。
要在Javascript中将日期时间转换为Unix时间戳,请使用 Date.js 插件
Convert normal date to unix timestamp
简单地循环你的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);