• HTML для тильды. Как показывать блок по времени и дате с циклом в 3 дня?

    twobomb
    @twobomb
    $(document).ready(function(){
      var now = new Date();
      let timeOffset = now.getTimezoneOffset()*60*1000;
      let timestamp  = now.getTime();
      let timeOpen = 13 ;//открытие 13:00  
      let dateOffset = 0;//Смещение в какой из дней будет показываться 0-2 
      let daysBeetwen = 3;//Каждые 3 дня показывать
      let offset = Math.floor((timestamp-timeOffset)/86400000) % daysBeetwen;
      if( offset == dateOffset && now.getHours() >= timeOpen ||
      		offset == (dateOffset+1)%daysBeetwen && now.getHours() < timeOpen)
          $('#rec411316842').show();
      else
          $('#rec411316842').hide();  
    });

    P.S. Только тут не мск, а время компа юзера. Ну можешь высчитать смещение чтобы было мск. Вообще это делается на сервере, а так при желании юзер всеравно может увидить блок
    p.p.s.
    вычислить мск
    $(document).ready(function(){
      var now =  getMSC();
      let timeOffset = now.getTimezoneOffset()*60*1000;
      let timestamp  = now.getTime();
      let timeOpen = 13 ;//открытие 13:00  
      let dateOffset = 0;//Смещение в какой из дней будет показываться 0-2 
      let daysBeetwen = 3;//Каждые 3 дня показывать
      let offset = Math.floor((timestamp-timeOffset)/86400000) % daysBeetwen;
      if( offset == dateOffset && now.getHours() >= timeOpen ||
      		offset == (dateOffset+1)%daysBeetwen && now.getHours() < timeOpen)
          $('#rec411316842').show();
      else
          $('#rec411316842').hide();  
    });
    
    function getMSC() {
        var d = new Date();
        var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
        var nd = new Date(utc + (3600000*3));
    		return nd;
    }
    Ответ написан
    Комментировать