首页 > 解决方案 > 如果他们不在同一天,如何处理两个不同的时间?

问题描述

我正在处理餐厅的营业时间和关闭时间,我正在使用时间来解析它并且它工作得很好但是有一种情况它不起作用,如果餐厅在上午 9:00 开门并在凌晨 1:00 关门(下一个天),它让餐厅无论何时都关闭。

   if (current_time.isBetween(opening_hour, close_hour))  {
     console.log('its open');
   } else {
     console.log('its closed');
   }

标签: javascriptreactjsmomentjs

解决方案


对于没有提及日期的通用解决方案,您还可以先测试 close_hour 是否在 opening_hour 之前,如果是这种情况,请使用isAfter(opening_hour) || isBefore(opening_hour)

注意:如果close_hour不是 momentJs,第一行将是if (moment(close_hour, 'hh:mm').isAfter(opening_hour)) {

if (close_hour.isAfter(opening_hour)) {
    if (current_time.isBetween(opening_hour, close_hour)) {
        console.log('its open');
    } else {
        console.log('its closed');
    }
} else {
    if (current_time.isAfter(opening_hour) || current_time.isBefore(close_hour)) {
        console.log('its open');
    } else {
        console.log('its closed');
    }
}

推荐阅读