javascript - 如何按时间打开和关闭注册表

标签 javascript show-hide

我有一个要注册的网站。 如何使用 JavaScript 按时间关闭和打开注册表。 营业时间为上午 8:00 至下午 16:00。 下午 16:01 至上午 07:59 关闭。 如何使用 JavaScript 禁用所有元素,如输入、按钮或所有表单。 请帮我 。 非常感谢。

最佳答案

您可以包含此代码:

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);

解释: “checkTime()”函数判断当前时间是禁用还是启用注册表;然后通过调用“toggleEnablingRegistry()”函数发送下一次应启用或禁用寄存器的时间,在剩余时间后再次调用“checkTime()”函数。

关于javascript - 如何按时间打开和关闭注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56618017/

相关文章:

javascript - 我可以在 react 状态中有一个功能吗?

javascript - 我可以只在一页上使用 jQuery replaceWith 吗?

javascript - 如何用元素包裹/包围突出显示的文本

jquery - 隐藏显示切换按钮图像

jquery - 使用 jquery 显示/隐藏一级 div

javascript - HTML5 视频 : get seek-from position

javascript - 如何在播放一次 CSS3 动画后停止运行并调用新动画?

python - 单击按钮时如何显示/隐藏整个列?

android - 显示键盘修复底部框架布局

javascript - 当我们更改页面时继续显示和隐藏 div