在JavaScript中检查当前时间是否介于开始时间和结束时间之间

在JavaScript中检查当前时间是否介于开始时间和结束时间之间,javascript,Javascript,我想了解如何在JavaScript中检查当前时间是否在上午11点到晚上8点之间 还有,我能查一下从现在到晚上8点有多少分钟吗 谢谢 Date.parse支持mm/dd/yyyy格式,而不是dd/mm/yyyy格式。对于后者,可以使用moment.js之类的库,或者执行如下所示的操作 var dateFrom = "02/05/2013"; var dateTo = "02/09/2013"; var dateCheck = "02/07/2013

我想了解如何在JavaScript中检查当前时间是否在上午11点到晚上8点之间

还有,我能查一下从现在到晚上8点有多少分钟吗

谢谢

Date.parse支持mm/dd/yyyy格式,而不是dd/mm/yyyy格式。对于后者,可以使用moment.js之类的库,或者执行如下所示的操作

var dateFrom = "02/05/2013";
var dateTo = "02/09/2013";
var dateCheck = "02/07/2013";
var d1 = dateFrom.split("/");
var d2 = dateTo.split("/");
var c = dateCheck.split("/");

var from = new Date(d1[2], parseInt(d1[1])-1, d1[0]); 
var to   = new Date(d2[2], parseInt(d2[1])-1, d2[0]);
var check = new Date(c[2], parseInt(c[1])-1, c[0]);

console.log(check > from && check < to)

一旦有了JavaScript,就可以使用getHours方法获取24小时内的一天中的小时数,然后比较这些数字

要获得已用分钟数,可以将一个日期对象与另一个日期对象相减,然后将一分钟内的毫秒数除以60000:

//检查当前时间是否在上午11点到晚上8点之间 常数 日期=新日期; 小时=date.getHours, isBetween=hours>=11和&hours<20, readableDate=date.toLocaleString; 日志`${readableDate}在上午11点到晚上8点之间?:${isBetween}`; //计算到晚上8点的分钟数 常数 oneMinute=60*1000,//JS时间以毫秒为单位 eightPM=新日期; eightPM.setHours20,0,0,0;//将新日期对象的时间设置为8pm 常数 毫秒持续时间=eightPM-日期,//**假设是在晚上8点之前! minsDuration=parseIntmillisecsDuration/1分钟; 日志`到晚上8点的分钟数:${minsDuration}` 这是我的方法:

函数dateCompareToday{ const today=新日期; 返回新的Datetoday.setHours11,0,0>today&&today>new Datetoday.setHours20,0,0 }
console.logdateCompareToday您可以使用新日期获取当前时间

使用设置小时、分钟、秒、毫秒值

你可以把它和if fromTime比较一下我想你想要这样的东西

检查时间; 函数检查时间{ var date=新日期;//当前时间 var hours=date.getHours; var mins=date.getMinutes; var day=date.getDay; var totalMins=小时*60+分钟; var targetMins=20*60 var remainMins=targetMins-totalMins 如果小时数>=11和小时数<20{ document.getElementByIdtext.innerHTML=是当前时间在上午11点到晚上8点之间,+remainMins+mins剩余时间为晚上8点; console.logYes当前时间在上午11点到晚上8点之间,+remainMins+mins剩余时间为晚上8点; } 否则{ document.getElementByIdtext.innerHTML=还有+remainMins+mins时间是晚上8点; console.log还有+remainMins+mins剩余时间为晚上8点; } }

我使用新日期获得了时间。然后使用.getHours、.getMinutes和.getSeconds来获取准确的时间

然后,我使用if hours>11&&hours<20检查它是否在上午11点到晚上8点之间

我将日期从endTime减少到endTime是8pm,它返回的差值以毫秒为单位,因此我将其除以1000*60,将其转换为分钟

然后我把结果放在divs里面

div每秒都在更新

试试下面我的代码

函数新时间{ var日期=新日期; var hours=date.getHours; var minutes=date.getMinutes; var seconds=date.getSeconds; 如果时间>12小时{ var小时数=小时数-12; } 如果小时数<10{ 小时=0+小时; } 如果分钟<10{ 分钟=0+分钟; } 如果秒数小于10{ 秒=0+秒; } var时间=小时+:+分钟+:+秒; $answer1.htmlt现在的时间是:+time; 小时=date.getHours; 如果小时数>=11和小时数<20{ $answer2.html当前时间在上午11点到晚上8点之间!; 让endTime=newdatedate.setHours20,0,0; 设minsLeft=Math.ceilendTime-date/1000*60; $answer3.htmlMinutes剩余到晚上8点:+mins剩余; }否则{ $answer2.htmlt当前时间不在上午11点到晚上8点之间!; } } setIntervalnewTime,1000;
矩可以是测试工具,以帮助您的情况。以下是您可能需要的API:,仅比较几个日期就显得过于臃肿。这回答了你的问题吗?您可能希望小时数>=11。您应该使用小时数>=11,否则它将显示11:30不是在上午11点到晚上8点之间。这里有一个错误。当我查看时,它说现在的时间是:未定义:40:3。该错误现在已修复!谢谢你通知我!要获得填充0,可以使用hours.toString.padStart2、0等