0

Hey guys I'm working on my first javascript script. It's a digital clock. And clicking on different buttons you can have times of different city. This is my script:

var hourHand = document.getElementById('hourHand');
var minuteHand = document.getElementById('minuteHand');
var secondHand = document.getElementById('secondHand');

function initClock() {
    var offset= +5.5;
    var d = new Date();
    var utc = d.getTime() - (d.getTimezoneOffset() * 60000);
    var nd = new Date(utc + (3600000 * offset ));
    var date = nd;
    var hour = date.getHours() % 12; // 0 - 23
    var minute = date.getMinutes();
    var second = date.getSeconds();

    var hourDeg = (hour * 30) + (0.5 * minute); // every hour, 30 deg. 30 / 60
    var minuteDeg = (minute * 6) + (0.1 * second); // every minute, 6 deg. 6 / 60
    var secondDeg = second * 6; // 360 / 60

    hourHand.style.transform = 'rotate(' + hourDeg + 'deg)';
    minuteHand.style.transform = 'rotate(' + minuteDeg + 'deg)';
    secondHand.style.transform = 'rotate(' + secondDeg + 'deg)';

    setTimeout(initClock, 1000);
};

initClock();

It works in this way but if I try to set offset as parameter and not as variable the hands change their position but they don't move every second like before. Can someone help me? Sorry if it could be a stupid question but I'm starting just now with javascript :)

   var hourHand = document.getElementById('hourHand');
var minuteHand = document.getElementById('minuteHand');
var secondHand = document.getElementById('secondHand');

function initClock(offset) {
    var d = new Date();
    var utc = d.getTime() - (d.getTimezoneOffset() * 60000);
    var nd = new Date(utc + (3600000 * offset ));
    var date = nd;
    var hour = date.getHours() % 12; // 0 - 23
    var minute = date.getMinutes();
    var second = date.getSeconds();

    var hourDeg = (hour * 30) + (0.5 * minute); // every hour, 30 deg. 30 / 60
    var minuteDeg = (minute * 6) + (0.1 * second); // every minute, 6 deg. 6 / 60
    var secondDeg = second * 6; // 360 / 60

    hourHand.style.transform = 'rotate(' + hourDeg + 'deg)';
    minuteHand.style.transform = 'rotate(' + minuteDeg + 'deg)';
    secondHand.style.transform = 'rotate(' + secondDeg + 'deg)';

    setTimeout(initClock, 1000);
};

initClock(+5.5);
Davide
  • 77
  • 2
  • 4

0 Answers0