#jquery #momentjs
#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() amp;amp; closing_time.isValid()){
console.log(opening_time.isValid() amp;amp; closing_time.isValid()) // shows always true
if(now < closing_time amp;amp; now > opening_time){
console.log(now < closing_time amp;amp; 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:
Я нашел ответ!
Прежде всего, кажется, что 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
}