Moment js的打开和关闭时间

时间:2019-04-11 15:07:05

标签: jquery momentjs

我正在尝试使用moment.js

创建一个客户服务开业窗口小部件

无论我尝试什么,当时间设置为四分之一小时时,小部件似乎都显示为“关闭”。 因此,当我将开放时间设置为17.00 CET时,它可以工作,但是当我将开放时间设置为17.15 CET时,则不起作用。

简而言之:17.00有效,16.59不起作用。

我只是看不到格式化时间有什么问题。

任何帮助都非常感谢!

function customerService(){
  var open = false;
  var time = '09.00-16.59'
  var now = moment();
  var combine = time.split('-')
  var opening_time = moment(combine[0], 'HH')
  var closing_time = moment(combine[1], 'HH')

  if(opening_time.isValid() && closing_time.isValid()){

    console.log(opening_time.isValid() && closing_time.isValid()) // shows always true 

    if(now < closing_time && now > opening_time){

      console.log(now < closing_time && now > opening_time) 
      /* shows true when time is a whole hour, but shows false 
       when time is eg a quarter of an hour. */

       open = true
    }
  }  

 console.log(open)

  $('.opening').each(function(){
    if(open){
      $(this).find('.status:first-child').addClass('open').removeClass('closed')
      $(this).find('.status:nth-child(2)').text( getAjaxTranslation('Open').toLowerCase())
    } else {
      $(this).find('.status:first-child').addClass('closed').removeClass('open')
      $(this).find('.status:nth-child(2)').text( getAjaxTranslation('Closed').toLowerCase())
    }
  });
}

1 个答案:

答案 0 :(得分:2)

我找到了答案!

首先,看来opening_timeclosing_time的格式不正确。 所以我将其更改为

  var opening_time = moment(combine[0], 'hh:mm:ss')
  var closing_time = moment(combine[1], 'hh:mm:ss')

第二,检查时间是否介于时间之间的正确方法如下:

 if(now.isBetween(opening_time, closing_time)){
      open = true
 }