Javascript 存储时间:显示当前时间和假日

Javascript 存储时间:显示当前时间和假日,javascript,jquery,Javascript,Jquery,所以,我正在为一个特定的网站增加商店营业时间。我发现了一个很棒的JS,它显示页面加载的当前时间,并标识商店是否关闭。但是,我想将页面加载时捕获的时间更改为活动时钟。我希望有人能帮忙 当页面加载时,它显示页面加载的时间。i、 e.下午12:30访问现场,timeDiv显示下午12:30。在下午12:31,它仍然显示下午12:30 我想要的是一个活动的时钟,因此在12:31时,它显示12:31时,并在此后的每个间隔显示当前时间 以下是指向原始笔的链接: var now=newdate(); var

所以,我正在为一个特定的网站增加商店营业时间。我发现了一个很棒的JS,它显示页面加载的当前时间,并标识商店是否关闭。但是,我想将页面加载时捕获的时间更改为活动时钟。我希望有人能帮忙


当页面加载时,它显示页面加载的时间。i、 e.下午12:30访问现场,timeDiv显示下午12:30。在下午12:31,它仍然显示下午12:30

我想要的是一个活动的时钟,因此在12:31时,它显示12:31时,并在此后的每个间隔显示当前时间

以下是指向原始笔的链接:

var now=newdate();
var weekday=新数组(7);
工作日[0]=“周日”;
工作日[1]=“周一”;
工作日[2]=“星期二”;
工作日[3]=“星期三”;
工作日[4]=“周四”;
工作日[5]=“周五”;
工作日[6]=“周六”;
var checkTime=函数(){
var today=weekday[now.getDay()];
var timeDiv=document.getElementById('timeDiv');
var dayOfWeek=now.getDay();
var hour=now.getHours();
var minutes=now.getMinutes();
//添加上午或下午
var后缀=小时>=12?“下午”:“上午”;
//将0添加到一位数分钟
如果(分钟<10){
分钟数=“0”+分钟数;}
如果((dayOfWeek==1 | | dayOfWeek==2 | | dayOfWeek==3 | | | dayOfWeek==4 | | dayOfWeek==5)&&hour>=9&&hour==17&&minutes=8&&hour==15&&minutes 12){
小时=((小时+11)%12+1);//即显示1:15而不是13:15
}
timeDiv.innerHTML='

是'+today+''+hour+':''+minutes+suffix+'

我们关门了!'; timeDiv.className='closed'; } }; var currentDay=weekday[now.getDay()]; var currentDayID=“#”+currentDay//获取今天的工作日并将其转换为id $(currentDayID).toggleClass(“今天”)/今天在视图中的高亮度显示小时模式弹出窗口 设置间隔(检查时间,1000); 检查时间();


有一个非常流行的JavaScript库,名为momentjs,它可以很好地处理很多日期/时间逻辑。我建议你从那里开始

此代码扩展momentjs的方式与您在假期中需要使用的方式大致相同:


基本逻辑是在一个单独的自定义数组中跟踪假日,然后创建一个函数,该函数将日期作为参数,并在假日数组中进行查找。

谢谢,我来看看。我还在努力修改它。问题是,在我调整checkTime()函数的每个实例中,时钟都会消失。假期是额外的。我只需要确定当用户在页面上时,时钟是否处于活动状态。再次感谢您提供的提示。我认为您需要在问题中添加更多关于此的详细信息,以获得好的答案。当页面加载时,它会显示页面加载的时间。i、 e.下午12:30访问现场,timeDiv显示下午12:30。在下午12:31,它仍然显示下午12:30。我想要的是一个活动时钟,因此在12:31时,它会显示12:31时,并在此后的每个时间间隔显示当前时间。请将其添加到您的问题中,它将在下面的评论中丢失
var now = new Date();
var weekday = new Array(7);
weekday[0] = "Sunday";
weekday[1] = "Monday";
weekday[2] = "Tuesday";
weekday[3] = "Wednesday";
weekday[4] = "Thursday";
weekday[5] = "Friday";
weekday[6] = "Saturday";

var checkTime = function() {
  var today = weekday[now.getDay()];
  var timeDiv = document.getElementById('timeDiv');
  var dayOfWeek = now.getDay();
  var hour = now.getHours();
  var minutes = now.getMinutes();

  //add AM or PM
  var suffix = hour >= 12 ? "PM" : "AM";

  // add 0 to one digit minutes
  if (minutes < 10) {
    minutes = "0" + minutes; }

  if ((dayOfWeek === 1 || dayOfWeek === 2 || dayOfWeek === 3 || dayOfWeek === 4 || dayOfWeek === 5) && hour >= 9 && hour === 17 && minutes <=29) {
    hour = ((hour + 11) % 12 + 1); //i.e. show 1:15 instead of 13:15
    timeDiv.innerHTML = 'it\'s ' + today + ' ' + hour + ':' + minutes + suffix + ' - we\'re open!';
    timeDiv.className = 'open';
  }

  else if ((dayOfWeek === 6) && hour >= 8 && hour === 15 && minutes <= 59) {
    hour = ((hour + 11) % 12 + 1);
    timeDiv.innerHTML = '<p id="hour">it\'s ' + today + ' ' + hour + ':' + minutes + suffix + '</p> <p id="stat">we\'re open!</p>';
    timeDiv.className = 'open';
  }

  else {
    if (hour === 0 || hour > 12) {
      hour = ((hour + 11) % 12 + 1); //i.e. show 1:15 instead of 13:15
    }
    timeDiv.innerHTML = '<p id="hour">It\'s ' + today + ' ' + hour + ':' + minutes + suffix + '</p><p id="stat">we\'re closed!</>';
    timeDiv.className = 'closed';
  }
};

var currentDay = weekday[now.getDay()];
var currentDayID = "#" + currentDay; //gets todays weekday and turns it into id
$(currentDayID).toggleClass("today"); /hightlights today in the view hours modal popup

setInterval(checkTime, 1000);
checkTime();