我正在尝试使用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())
}
});
}
答案 0 :(得分:2)
我找到了答案!
首先,看来opening_time
和closing_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
}