0

I have questions regarding my below code with clocks. How can I adjust the function for three different time zones? Should I work with Class in this case?

const secondHand = document.getElementById("second_hand");
const minsHand = document.getElementById("min_hand");
const hourHand = document.getElementById("hour_hand");

function setDate() {
  const now = new Date(); 

  const seconds = now.getSeconds();
  const secondsDegrees = (seconds / 60) * 360 + 90; 
  secondHand.style.transform = `rotate(${secondsDegrees}deg)`;

  const mins = now.getMinutes();
  const minsDegrees = (mins / 60) * 360 + (seconds / 60) * 6 + 90;
  minsHand.style.transform = `rotate(${minsDegrees}deg)`;

  const hour = now.getHours();
  const hourDegrees = (hour / 12) * 360 + (mins / 60) * 30 + 90;
  hourHand.style.transform = `rotate(${hourDegrees}deg)`;
}
setInterval(setDate, 1000);
setDate();
karel
  • 5,489
  • 46
  • 45
  • 50
  • JavaScript runs in the browser (unless you're using node), so it gets whatever the system time is set to. – Jesse Dec 01 '21 at 18:24

1 Answers1

0

The date constructor has the .toLocaleString() function, which will return the current date / time of a spesific time zone (given you only use modern web browsers / node versions).

For example: let newYorkTime = new Date().toLocaleString("en-US", {timeZone: "America/New_York"})

see this question for more info: How to initialize a JavaScript Date to a particular time zone

KCGD
  • 675
  • 6
  • 10