我按照教程在 javascript ajax 中创建烛台图。但是现在我想实现一个 api,这样就可以在教程使用的 json 文件中选择一个时间刻度而不是固定的时间刻度。
原文格式:
`{
"x": 1483381800000,
"y": [
65.860001,
66.139999,
64.599998,
65.400002
]
}`
我不确定 x 指的是什么,但我假设它必须是时间,但不确定为什么它是那个值。 但是对于 y 它是 [open,high,low,close] 因为我将它们与 api 的值进行了比较。
来自我的 api 的格式:
`{
"datetime": "2017-01-03",
"open": "65.86000",
"high": "66.14000",
"low": "64.60000",
"close": "65.40000",
"volume": "9519838"
}`
如何将其转换为原始格式,以便教程中的代码仍然有效? 这是实际的代码:
`function parseData(result) {
console.log(result.values);
for (var i = 0; i < result.length; i++) {
dps.push({
x: result[i].datetime,
y: result[i].open
});
}
chart.render();
}`
应该可以做到
function parseData(result) {
for (var i = 0; i < result.length; i++) {
var date = new Date(result[i].datetime);
dps.push({
x: date.getTime(),
y: result[i].open
});
}
chart.render();
}
如果你是对的,原始格式中的原始和“x”是日期时间,那么正如我们所见,它们必须以毫秒为单位。
通过这个简单的代码,我们可以在 javascript 中将毫秒转换为日期时间
const x = 1483381800000; // timestamp
const date = new Date(x); // create a new Date object
console.log(date); // Mon Jan 02 2017 15:30:00 GMT-0300 (Argentina Standard Time)
要再次将这个新日期转换为毫秒,只需执行此操作
// date is a datetime object.
console.log(date.getTime()) // datetime in miliseconds
现在,由于时区差异,您在处理日期时必须格外小心,做这种事情时请记住这一点。