假如后台返回的arr=[0812,0819,0829,0929];
数组的每一项代表一个日期。
今天是0831,怎么判断得出距离今天最近的一天是数组的哪一项?下标怎么获取出来?
这里指的最近的一天是指距离当天时间绝对的天数,比如说有两个数据分别是0829,0901,那离今天(0831)最近的就是0901了。
哈哈,觉得自己好啰嗦,毕竟还是想把需求说清楚。
希望各位大佬解答一下!!!
不胜感激!!!
补充一下,后台返回的数据长这个样子:
假如后台返回的arr=[0812,0819,0829,0929];
数组的每一项代表一个日期。
今天是0831,怎么判断得出距离今天最近的一天是数组的哪一项?下标怎么获取出来?
这里指的最近的一天是指距离当天时间绝对的天数,比如说有两个数据分别是0829,0901,那离今天(0831)最近的就是0901了。
哈哈,觉得自己好啰嗦,毕竟还是想把需求说清楚。
希望各位大佬解答一下!!!
不胜感激!!!
补充一下,后台返回的数据长这个样子:
var arr=[0812,0819,0829,0929]
var today = 0831
var oldnum, num, index, i
for(i in arr){
oldnum = num
num = Math.abs(arr[i] - today);
if(num < oldnum) index = i
}
alert(index)
由于月份和日期的特殊性,你应该用new Date来判断远近,你后台返回的字符串可以直接构造成Date对象
arr.reduce((r,date)=>{
var s = new Date().setHours(0)-new Date(date)
if(s<0) s = -s
if(!(s>r[0])) r =[s,date]
return r
},[])[1]
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答848 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决