gpt4 book ai didi

javascript - 如果 startTime 小于当前时间,在这种情况下如何计算正确的时间?

转载 作者:行者123 更新时间:2023-12-02 16:54:50 25 4
gpt4 key购买 nike

我有今天日期的餐厅业务startTimeendTime

我有这样的要求,当点击立即订购按钮时,根据餐厅startTimeendTime我需要显示一条提醒消息表示服务将在接下来的 XX 分钟内恢复

这是我的代码

var startTime = '04:00 PM';

var endTime = '5:30 PM';


var now = new Date();
var startDate = dateObj(startTime);
var endDate = dateObj(endTime);

var openorclosed = now < endDate && now > startDate ? 'open' : 'closed';

if(openorclosed=='open')
{
alert('Restaurant is Open');
// do nothing
}

else if(openorclosed=='closed')
{
var diffinMinutes = getMinutesBetweenDates(startDate,now);
var minutes = Math.floor(diffinMinutes);
alert('service not available for the next '+minutes+' min');
}


function dateObj(d) {
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;
}

function getMinutesBetweenDates(startDate, now) {
var diff = startDate.getTime() - now.getTime();
return (diff / 60000);
}

如果开始时间大于当前时间,则其工作正常(显示正确性)

但是,如果 startTime 小于当前时间,则其显示值为负值

有人可以告诉我如何在 startTime 较小​​的情况下在几分钟内显示正确性吗?

这是我的jsfiddle

http://jsfiddle.net/wajzvqqx/1/

非常感谢。

最佳答案

简单的解决方案:

如果您的值为负数,请添加一整天:

var diffinMinutes = getMinutesBetweenDates(startDate,now);
if (diffinMinutes < 0) diffinMinutes = diffinMinutes + 1440;
var minutes = Math.floor(diffinMinutes);

关于javascript - 如果 startTime 小于当前时间,在这种情况下如何计算正确的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26256571/

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