Обратный отсчет доставки JQuery - скрыть в определенное время в выходные

В настоящее время я работаю над сайтом электронной коммерции, где нам нужен счетчик доставки. Это то, что я сейчас работаю, где счетчик прячется по выходным:

function twoD(n){
    return (n < 10 ? "0" : "") + n;
}
$(document).ready(function () {
    setInterval(function () {
        var now = new Date();
        var day = now.getDay();
        var end;

        if(day >= 1 && day <= 5) {
            end = new Date(now.getYear(), now.getMonth(), day, 14, 0, 0, 0);    
        } else {
            $('#wc_countdowntimer').hide();
        }

        var timeleft = end.getTime() - now.getTime();
        var diff = new Date(timeleft);


        $("#wc_countdowntimer").html("<i class='fa fa-clock-o'></i> Next shipment in " + twoD(diff.getHours()) + ":" + twoD(diff.getMinutes()) + ":" + twoD(diff.getSeconds()) + "");

    }, 1000);
});

Единственная проблема заключается в том, что мы хотим, чтобы счетчик был скрыт уже после 14:00 в пятницу, а затем снова отображался в воскресенье после 14:00. Это сделает счетчик видимым только тогда, когда заказ будет отправлен менее чем через 24 часа.

Я пытался внести различные изменения, но я не могу заставить код работать так, как я хочу.

Надеюсь, кто-то здесь, может помочь. Любая помощь будет оценена.

1 ответ

Решение

Вы можете сделать это так:

 function isVisibleByDate(date) {
   var isVisible = true;
   //  hidden already after 14PM on friday and before sunday after 14PM
   var hour = date.getHours();
   var day = date.getDay();
   if ((day == 5 && hour > 14) || (day == 6 && hour < 14)) isVisible = false;   

   return isVisible;
 }

Демо онлайн (jsFiddle)

Другие вопросы по тегам