具体情况..我有一个充满日期时间的数组,我通过api进入。
用户应该能够从日期选择器中选择日期(仅显示数组中可用的日期),然后查看相应的时间。
所以我做了什么..
原始数组是通过php获得的,所以在开始用可能的日期填充datepicker之前,我创建了一个仅包含日期的额外数组。 由于我保留了密钥,因此可以将这两个阵列放在一起。
数组如下所示: [" 8-8-2017,07:00"," 26-8-2017,07:00"];
到目前为止一直很好...... 在用户选择日期后,我触发此日期以便能够开始挖掘与该日期相对应的时间。
现在它变得凌乱......
$('#datepick').datepicker().on("input change", function(e) {
$("#uur").text('');
var selecteddate = e.target.value;
var searchArr = datesArray;
var ind = searchArr.indexOf(selecteddate.toString());
var result = datesArray.filter(function(item) {
return typeof item == 'string' && item.indexOf(selecteddate.toString()) > -1;
});
var afterComma = result.toString().substr(result.toString().indexOf(",") + 1);
var final = afterComma.replace(":", "u");
$("#uur").text("De warming up party gaat van start rond " + final);
});
结果是这只适用于数组的最后一个元素。 因为我根据逗号进行分割。现在我知道最简单的工作方式就是用另一个符号改变那个分开的日期和时间,但我仍然想知道为什么这不容易。
答案 0 :(得分:0)
每次都将整个数组转换为字符串。您应该更改以下代码:
var afterComma = result.toString().substr(result.toString().indexOf(",") + 1);
对此;
var afterComma = item.toString().substr(item.toString().indexOf(",") + 1);
编辑: 我也错过了上面的循环
//for every item in result, afterComma will refer to related minute string
for (var item in result) {
var afterComma = item.toString().substr(item.toString().indexOf(",") + 1);
// Do rest here
}