gpt4 book ai didi

javascript - 考虑到分钟,如何检查当前时间是否在特定范围内

转载 作者:搜寻专家 更新时间:2023-11-01 05:11:28 26 4
gpt4 key购买 nike

我正在做一个餐厅送货上门的网站,根据餐厅的送货上门时间,我需要启用/禁用“立即订购”按钮

我有 12 小时格式的开始时间和结束时间。

这是代码

var startTime = '8:30 AM' ;
var endTime = '6:30 PM' ;


var formatTime = (function () {
function addZero(num) {
return (num >= 0 && num < 10) ? "0" + num : num + "";
}
return function (dt) {
var formatted = '';

if (dt) {
var hours24 = dt.getHours();
var hours = ((hours24 + 11) % 12) + 1;
formatted = [formatted, [addZero(hours), addZero(dt.getMinutes())].join(":"),hours24>11?"pm" :"am"].join(" ");
}
return formatted;
}
})();


var currentTime = formatTime(new Date());

我需要检查当前时间是否在 startTime 和 EndTime 之间

如果只有 Hours,我可以从 startTime、endTime 和 currentTime 中提取冒号前的第一个字符,然后像这样进行比较

  if(currentTime >= startTime && currentTime <= endTime) 
{
alert('Restaurant Open');
}
else
{
alert('Restaurant Closed');
}

但是我还需要考虑 session 记录,所以如果考虑 session 记录,你能告诉我如何做这个比较吗??

如何检查当前时间是否在考虑分钟的特定范围内

最佳答案

像这样的东西应该可以工作

var startTime = '6:30 PM';
var endTime = '8:30 AM';
var now = new Date();

var startDate = dateObj(startTime); // get date objects
var endDate = dateObj(endTime);

if (startDate > endDate) { // check if start comes before end
var temp = startDate; // if so, assume it's across midnight
startDate = endDate; // and swap the dates
endDate = temp;
}

var open = now < endDate && now > startDate ? 'open' : 'closed'; // compare
console.log('Restaurant is ' + open);

function dateObj(d) { // date parser ...
var parts = d.split(/:|\s/),
date = new Date();
if (parts.pop().toLowerCase() == 'pm') parts[0] = (+parts[0]) + 12;
date.setHours(+parts.shift());
date.setMinutes(+parts.shift());
return date;
}
.as-console-wrapper {top : 0!important}

它拆分这些时间并将 PM 时间加 12,然后创建可以轻松比较的日期对象。

关于javascript - 考虑到分钟,如何检查当前时间是否在特定范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26078488/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com