Javascript 如何检查当前时间是否介于存储在数组中的时间之间

Javascript 如何检查当前时间是否介于存储在数组中的时间之间,javascript,node.js,Javascript,Node.js,我需要检查我的当前时间是否在开关1、开关2或开关3之间。 我尝试了for循环和匹配条件,但不知何故它不起作用,我不确定这是否是由于字符串比较 例如: 如果当前时间为23-09-2020 7:45,则要打印23-09-2020开关-1 如果当前时间为23-09-2020 18:40,则要打印23-09-2020开关-2 如果我的当前时间是24-09-2020 03:00,则希望打印23-09-2020开关-3(当前日期减去1天) i、 e.特殊情况下,时间从00:00到05:00,因为日期更改为9

我需要检查我的当前时间是否在开关1、开关2或开关3之间。 我尝试了for循环和匹配条件,但不知何故它不起作用,我不确定这是否是由于字符串比较

例如:

  • 如果当前时间为23-09-2020 7:45,则要打印23-09-2020开关-1
  • 如果当前时间为23-09-2020 18:40,则要打印23-09-2020开关-2
  • 如果我的当前时间是24-09-2020 03:00,则希望打印23-09-2020开关-3(当前日期减去1天)
  • i、 e.特殊情况下,时间从00:00到05:00,因为日期更改为9月24日,我希望当前日期减去1天,即9月23日

    var数据;
    var m=moment().format('HH:mm')
    控制台日志(m)
    变量时间=[
    {
    “开关名称”:“开关3”,
    “开始”:“22:00”,
    “结束”:“05:00”
    },
    {
    “开关名称”:“开关1”,
    “开始”:“05:00”,
    “结束”:“15:00”,
    },
    {
    “开关名称”:“开关2”,
    “开始”:“15:00”,
    “结束”:“22:00”,
    },
    ]
    for(设i=0;i结束){
    如果(m=end){
    数据={
    currentdate:矩().格式('YYYY-MM-DD'),
    currentswitch:Time[i]。开关名称
    }
    控制台日志(数据);
    打破
    }
    }
    否则{
    
    如果(m>=start&mif
    start>end
    (即“开关3”的情况),您的测试不正确:
    (m=end)
    。如果(m>=start | | m end),则应为:
    {
    如果(m=end){
    数据={
    //减去1天:
    currentdate:moment().减去(1,“天”).格式(“YYYY-MM-DD”),
    currentswitch:Time[i]。开关名称
    }
    控制台日志(数据);
    打破
    }
    }
    否则{
    
    如果(m>=开始和&m感谢您的回答,我想减去1天,这是因为当当前时间为24:00时,天更改为9月24日。因此开关-3有两种情况,即当当前时间在22:00到24:00之间时,我需要日期为9月23日,如果当前时间为b/w 24:00到05:00,我需要日期为9月23日。(9月24日减去1天)。上面的代码不起作用,因为它与任何条件都不匹配。@GunjanAnshul请提供一个我的代码不起作用的条件示例。非常感谢您在这方面提供的任何帮助。