Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用未正常工作的力矩检查时间是否介于两次之间_Javascript_Momentjs - Fatal编程技术网

Javascript 使用未正常工作的力矩检查时间是否介于两次之间

Javascript 使用未正常工作的力矩检查时间是否介于两次之间,javascript,momentjs,Javascript,Momentjs,我试图使用moment.js检查时间是否发生在下午4:29到上午8:59的两个时间段之间,但是它不起作用,下面是我的代码: var dropoff_date = new Date(document.getElementById("car-rental-dropoff-date").value); var dropoff_time_string = document.getElementById("car-rental-dropoff-time").value; var format = 'h:m

我试图使用moment.js检查时间是否发生在下午4:29到上午8:59的两个时间段之间,但是它不起作用,下面是我的代码:

var dropoff_date = new Date(document.getElementById("car-rental-dropoff-date").value);
var dropoff_time_string = document.getElementById("car-rental-dropoff-time").value;
var format = 'h:mm A';
var dropoff_time = moment(dropoff_time_string,format),
ahStart = moment('4:29 PM', format),
ahEnd = moment('8:59 AM', format);

if ((moment(dropoff_time).isBetween(ahStart, ahEnd)) {
    alert ("it works!");
}
但是,如果我将上午8:59改为晚上9:00,它确实起作用,如果我进入上午9:00,它就不起作用,有人能帮我解决这个问题吗

编辑3:我刚刚开始工作,但这段代码似乎有点太多,如果有人有更好的方法,我将不胜感激:

var dropoff_time_string = document.getElementById("car-rental-dropoff-time").value;
var format = 'h:mm A';
var dropoff_time = moment(dropoff_time_string,format),

closingToday = moment('4:30 PM', format),
closingYesterday = moment('4:30 PM', format).subtract(1, 'day'),
openingToday = moment('9:00 AM', format),
openingTomorrow = moment('9:00 AM', format).add(1, 'day');

if (((moment(dropoff_time).isBetween(closingYesterday , openingToday)) || (moment(dropoff_time).isBetween(closingToday , openingTomorrow))) {
    //bill = (bill+20000);
    alert ("IT WORKS!" );
}

我想现在的解析器是挑剔的。此格式有效,而且您在时间变量上缺少了一些
var
声明,并且在行尾缺少了一些分号:

var format = "MM-DD-YY hh:mm A";
var dropoff_time = moment("01-01-01 8:21 pm", format);
var ahStart = moment('01-01-01 4:30 pm', format);
var ahEnd = moment('01-02-01 8:30 am', format);

if (dropoff_time.isBetween(ahStart, ahEnd)) {
    console.log("it works!");
}

考虑到您的格式不包括一天,它似乎工作得很好。你能把一天合并起来,让它知道你指的是一个通宵时段吗?不,那只是我的工作时间。你有更好的方法来完成我需要完成的事情吗?我会首先尝试添加日期。它不知道你指的是一夜之间。你问的是,当天下午4点是否早于上午9点。在这三个时刻加上一个日期,我想它会起作用的。你把同一天放在不动的地方,结束的时间就是第二天