Вывод <div> по определенным дням с помощью momentjs

D'Jack

Постоялец
Регистрация
22 Сен 2012
Сообщения
444
Реакции
173
Есть сайт ресторана, и 2 задачи:
  • по пятницам и субботам надо показывать div, что "сегодня максимальная загрузка зала, пожалуйста бронируйте столики" - 1 задача - решена
  • показывать по аналогии с Яндекс Картами, мы закроемся через N часов - 2 задача. - решена
заказчик просит реализовать через momentjs.
 
Последнее редактирование:
А в чем конкретно проблема? Получаете через momentjs текущий день недели, если это пятница или суббота выполняете действие:
Код:
if(moment(new Date()).format('dd').toLowerCase() == "fr") {
  // Если сегодня пятница
  // Выполняем какой-то код
}else if(moment(new Date()).format('dd').toLowerCase() == "sa") {
  // Если сегодня суббота
  // Выполняем какой-то код
} else {
  // Сегодня не пятница и не суббота!
}

Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование:
  • показывать по аналогии с Яндекс Картами, мы закроемся через N часов - 2 задача.
Если ресторан, например, закрывается в 23:00, то
Код:
<div id="timer"></div>
HTML:
document.addEventListener('DOMContentLoaded', function(){
  var el = document.getElementById('timer'),
  now = new Date();
  var date = [now.getMonth()+1,now.getDate(),now.getFullYear()],
  a = moment(now),
  unix = Date.parse(date.join('-') + ' ' + '23:00'),
  b = moment.unix(unix/1000),
  hours = b.diff(a, 'hours'),
  minutes = b.diff(a, 'minutes')%60;
  var result = 'Мы закроемся через ';
  if(hours > 0){
    result += hours;
     if(hours == 1){
       result += ' час ';
     } else if(hours > 1 && hours < 5){
       result += ' часа ';
     } else {
       result += ' часов ';
     }
   }
  result += minutes;
  var minutes_str = minutes.toString();
  if(minutes_str.length > 1){
    minutes_str = minutes_str.slice(-1);
  }
  minutes_str = ~~minutes_str;
  if(minutes == 1 || (minutes > 20 && minutes_str == 1)){
    result += ' минуту';
  } else if(minutes == 2 || minutes == 3 || minutes == 4 || (minutes > 20 && (minutes_str == 2 || minutes_str == 3 || minutes_str == 4))){
    result += ' минуты';
  } else {
    result += ' минут';
  }
  el.textContent = result;
});
А если в 03:00, то нужно дописать дополнительную логику на сдвиг даты.
 
тему можно закрыть
 
Назад
Сверху