我目前有点卡住尝试组合两个数组(其中一个日期,一次)。
我编写了一个PHP脚本,用于从包含数据的SQL表中传递JSON,但我很难将这两个数组转换为JavaScript中的单个日期时间数组。
JSON即将发布:
{
"dates": [
"2016-03-13",
"2016-03-13",
"2016-03-14",
"2016-03-14"
],
"times": [
"16:41:13",
"17:36:57",
"08:53:02",
"21:53:11"
]
}
到目前为止,我使用它来收集数据,但我真的不知道从那里去哪里(或者我能得到的甚至是数组?):
$(document).ready(function() {
var API_URL = "php_script.php";
$.getJSON(API_URL, function(data) {
var dates = data.dates;
var times = data.times;
console.log(dates + " " + times);
});
});
其输出为:
2016-03-13,2016-03-13,2016-03-14,2016-03-14,16:41:13,17:36:57,08:53:02,21:53:11
我更喜欢:
[2016-03-13 16:41:13,2016-03-13 17:36:57,2016-03-14 08:53:02,2016-03-14 21:53:11]
作为一个数组传出,然后我可以使用chart.js。
日期和时间将用于X轴以及它们之间的时间用于Y轴,因此如果可能的话,能够在数据上完成某种日期时间数学运算会很有用。
答案 0 :(得分:0)
如果您使用像lodash
这样的库,这种事情就很容易了。在这种情况下,您需要_.zip
var dates = data.dates;
var times = data.times;
var zipped = _.zip(dates, times);
var text = _.reduce(zipped, function(aggregate, item) { return ',' + item[0] + ' ' + item[1]; });
console.log(text);
答案 1 :(得分:0)
尝试使用,
分割日期和时间,并使用循环
var data = {
"dates": [
"2016-03-13",
"2016-03-13",
"2016-03-14",
"2016-03-14"
],
"times": [
"16:41:13",
"17:36:57",
"08:53:02",
"21:53:11"
]
}
var datetimes = [];
for (var i = 0; i < data.dates.length; i++) {
datetimes.push(data.dates[i] + ' ' + data.times[i]);
}
document.write('<pre>' + JSON.stringify(datetimes, 0, 4) + '</pre>')
答案 2 :(得分:0)
这是一种手动将它们混合在一起的方法....要点是手动将字符串拼接在一起,然后使用Date.parse()
制作日期对象。
var dates = [
"2016-03-13",
"2016-03-13",
"2016-03-14",
"2016-03-14",
];
var times = [
"16:41:13",
"17:36:57",
"08:53:02",
"21:53:11",
];
var both = [];
for (var i = 0; i < dates.length; i++) {
both.push(new Date(Date.parse(dates[i] + " " + times[i])));
}
console.log("%j",both);