Thylorion
Thylorion

Reputation: 105

Javascript: How Do I Refresh Page At Midnight?

I have been trying to get my page to refresh at midnight, but the code I wrote is not working.

This is the code that I have written:

function reloadClock() {
  var reloadTime = new Date();
  var hrs = reloadTime.getHours();
  var min = reloadTime.getMinutes();
  var sec = reloadTime.getSeconds();
  
  // I tried this code, it will not work.
  if (hrs == 0 && min == 0 && sec == 0) {
    alert('this page will now reload');
    location.reload();
  }
  
  // I also tried this code, still can't get it to work.
  if (hrs == 14) { // Works as intended.
    alert(hrs);
    if (min == 31) { // Works as intended.
      alert(min);
      if (sec == 0) { // Does not work as intended.
        alert(sec);
        location.reload();
      }
    }
  }
  setTimeout(reloadClock(), 1000);
}

Does anyone know a solution for this?

Upvotes: 0

Views: 563

Answers (1)

Hanna Rose
Hanna Rose

Reputation: 422

check this

const timerefresh = setInterval(function(){
  const time_ = new Date().toLocaleString('en-GB'); // return 24 hour time format in string, explaination about en-GB you can search on wikipedia, thats bored (:
  let date = time_.split(', ')[0].split('/'); // split the time strings to get date in array [day, month, year]
  let clock = time_.split(', ')[1].split(':'); // split the time strings to get clock in array [hour, min, sec]
  countDownTime(Number(clock[0]),Number(clock[1]),Number(clock[2]));
  document.getElementById('time1').innerHTML = 'date:'+date+', clock:'+clock;
  
},1000);
function countDownTime(h,m,s){
// some match to reverse the clock
document.getElementById('time2').innerHTML = 'countdown to midnight : '+ (23-h)+':'+(59-m)+':'+(60-s);
if(h === 23 && m === 59 && s === 59){ itsMidnight(); } // call its midnight 1 sec before clock 00:00:00
}
function itsMidnight(){
// its midnight, your function here
  console.log('midnight! reload.')
  window.location.reload();
}

// code below just for testing, you can delete it
let sectomidnight = 50;
function gotoMidnight(){
  clearInterval(timerefresh);
  setInterval(function(){
    sectomidnight += 1;
    countDownTime(23,59,sectomidnight);
  },1000);
  
}
<div id="time1"></div>
<div id="time2"></div>
<button onclick="gotoMidnight();">goto 10 sec before midnight</button>

Upvotes: 2

Related Questions