Time Remaining

by Matthew Day

JavaScript

const timer = () => {
  const msDay = 86400000;
  const msHour = 3600000;
  const offset = new Date().getTimezoneOffset()/60;
  const msOffset = new Date().getTimezoneOffset() * 60000;

  // Today's start date in milliseconds
  let start = new Date();
  start.setHours(0 - offset,0,0,0);
  let msStart = new Date(start).getTime();

  // Right now in milliseconds
  let msNow = Date.now() - msOffset;

  // Today's end data in milliseconds
  let end = new Date();
  end.setHours(23 - offset,59,59,999);
  let msEnd = new Date(end).getTime();
  
  console.log(msStart, msNow, msEnd);

  const remainingTime = (ms) => {
    let hours = Math.floor((ms/(1000 * 60 * 60)) % 24);
    let minutes = Math.floor((ms/(1000*60)) % 60);
    let seconds = Math.floor((ms/1000) % 60);
    return {
      hours: hours,
      minutes: minutes,
      seconds: seconds
    }
  }

  return remainingTime(msEnd - msNow);
  
};


console.log(timer());

// SOURCE
// https://stackoverflow.com/questions/8528382/javascript-show-milliseconds-as-dayshoursmins-without-seconds