Javascript/jquery-如何在数组中获得最接近的时间?

Javascript/jquery-如何在数组中获得最接近的时间?,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我正在尝试获取数组或列表中最近的时间。 我能够找到这段代码,并试图通过编辑使其工作,但没有任何运气。 可以使用jquery,如果它更容易的话。下面只是javascript 如何输出最接近时间的时间,该时间=时间 经过进一步研究,我发现了这个片段,并认为它可能对我的事业有用: var date1 = myDate, date2 = new Date(); return (date1.getTime() < date2.getTime()); 我在尝试什么 var currentTime =

我正在尝试获取数组或列表中最近的时间。 我能够找到这段代码,并试图通过编辑使其工作,但没有任何运气。 可以使用jquery,如果它更容易的话。下面只是javascript 如何输出最接近时间的时间,该时间=时间

经过进一步研究,我发现了这个片段,并认为它可能对我的事业有用:

var date1 = myDate,
date2 = new Date();
return (date1.getTime() < date2.getTime());
我在尝试什么

var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()

if (minutes < 10) {
    minutes = "0" + minutes
}

var thetime = hours + ":" + minutes + " "

var json = [{
    "times": {
        "times1": "20:01",
        "times2": "21:43",
        "times3": "22:56",
        "times4": "23:21"
    }
}]
var times = [];
var jsontimes = json[0].times;
for (var i in jsontimes) {
    times.push(new Date(jsontimes[i]))
}
times.sort(function (a, b) {
    return Math.abs(thetime - a / new Date()) + Math.abs(thetime - b / new Date())
});

// display code
for (var i = 0; i < jsontimes.length; i++)
    document.getElementById("output").innerHTML += dates[i] + "<br>";

您试图创建具有无效值(例如20:01)的日期对象,从而导致无效日期。根据MDN,在创建新的日期对象时,可以通过以下方式传递参数:

Date(value)
Date(dateString)
Date(year, month, day [, hour, minute, second, millisecond])
在哪里 值是一个整数值,表示自1970年1月1日00:00:00 UTC Unix历元以来的毫秒数。及

dateString是表示日期的字符串值。字符串的格式应为符合IETF的RFC2822时间戳解析方法识别的格式

您可以在此处阅读更多内容:

这并不能真正回答您最初的问题,但它应该可以帮助您创建一个包含所需值的数组