Search code examples
javascriptshow-hide

How to open and close the registry it by time


I have a web site to register. How to use JavaScript for close and open registry it by time . Open from 08:00 am to 16:00 pm. Close from 16:01 pm to 07:59 am. How to use JavaScript for disable all elements like input, button or all form. Please help me . Thanks a lot.


Solution

  • You can include this code:

    var disableOrEnableRegistry = function(disableAll){
      //assuming need to disable all buttons and input 
      var buttons =document.getElementsByTagName('button');
      var inputs =document.getElementsByTagName('input');
      for(button of buttons){
          button.disabled = disableAll;
      } 
      for(input of inputs){
        input.disabled = disableAll;
      }
    }
    
    var toggleEnablingRegistry=function(toggle, interval, chechTimeCallback){
      setTimeout(function() {  
          disableOrEnableRegistry(toggle);
          chechTimeCallback(chechTimeCallback);
      }, interval);
    }
    
    var checkTime = function(callback){
      var d = new Date(); 
      var hours = d.getHours();
      var minutes = d.getMinutes();
      var seconds = d.getSeconds();
      if(hours>16 || (hours === 16 && minutes > 0)){ //16:01-23:59
          disableOrEnableRegistry(true);
          var remainingHours=23-hours+7;
          var remainingMinutes=60-minutes;
          var remainingSeconds=60-seconds;
          var remainingTimeInMiliseconds=(remainingHours*3600+remainingMinutes*60+remainingSeconds)*1000;
          toggleEnablingRegistry(false, remainingTimeInMiliseconds, callback);
      }
      else if(hours<8){//00:00-7:59
          disableOrEnableRegistry(true);
          var remainingTimeInMiliseconds=(hours*3600+minutes*60+seconds)*1000;
          toggleEnablingRegistry(false, remainingTimeInMiliseconds, callback);
      }
      else{//8:00-16:00
          var remainingHours=23-hours+7;
          var remainingMinutes=60-minutes;
          var remainingSeconds=60-seconds;
          var remainingTimeInMiliseconds=(remainingHours*3600+remainingMinutes*60+remainingSeconds)*1000;
          toggleEnablingRegistry(true, remainingTimeInMiliseconds, callback);
      }
    }
    checkTime(checkTime);
    

    Explanation: "checkTime()" function determines the current time is whether to disable or enable registry; Then it sends the next time when the register should be enabled or disabled by calling "toggleEnablingRegistry()" function which after the remaining time call the "checkTime()" function again.