如果startTime小于currenttime,在这种情况下如何计算正确的时间
If startTime is lesser than currenttime how to calculate proper time in this case?
我有餐厅业务startTime和endTime今天的日期。
我有一个要求,当点击立即订购按钮时,取决于餐厅startTime
和endTime
,我需要显示警报会议表示服务将在下一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小于Current time,则其显示值为负值
有人能告诉我如何在几分钟内显示正确的开始时间吗??
这是我的jsfiddle
http://jsfiddle.net/wajzvqqx/1/
非常感谢。
简单的解决方案:
如果你的值是负数,加一整天:
var diffinMinutes = getMinutesBetweenDates(startDate,now);
if (diffinMinutes < 0) diffinMinutes = diffinMinutes + 1440;
var minutes = Math.floor(diffinMinutes);
当商店为closed
:时使用此代码
startDate.setDate(startDate.getDate()+1);
您正在从当前日期计算开始日期和结束日期对象。
所以,如果商店当天关闭,那么在开始日期后再增加一天。
Fiddle
尝试修改getMinutesBetweenDate
函数以获得如下差异:
function getMinutesBetweenDates(startDate, now) {
var diff;
if (startDate > now) {
diff = startDate.getTime() - now.getTime();
} else {
diff = now.getTime() - startDate.getTime();
}
return (diff / 60000);
}
相关文章:
- JavaScript计算帮助(乘以时间)
- Javascript-如何使用bootstrap日期时间选择器自动计算两个时间输入之间的差异
- 创建一个倒计时计时器脚本,该脚本计算声音文件的持续时间,而不是特定的日期
- 计算浏览器上的空闲时间
- 如何用javascript计算从现在开始的时间
- 通过jQuery在IE中计算时间戳 - 不起作用
- 如何在每页中计算时间
- JavaScript 计算时间和秒数
- 计算时间范围并将其保存到文件
- 如何在javascript中计算时间(也许使用jquery)
- 在 Javascript 中以 24 小时时间格式计算时间差异
- 在 JavaScript 中,在循环中创建函数的具体原因是什么,可能会浪费计算时间
- 如何在 JavaScript 中计算“时间 1”-“时间 2”
- 用JavaScript计算时间跨度(以年、月和天为单位)
- 根据文本框值(而非DateTimes)计算时间,返回四分之一小时
- 为什么我的时刻.js不计算时间在不同的时区基于给定的时间戳
- Javascript ES6集合的计算/时间复杂性
- 使用moment js计算时间在两个日期之间发生的频率
- 使用毫秒计算时间
- 如何计算时间和显示在H-M与12小时时钟,基于距离和速度使用javascript