当我在PC上更改日期和时间时Javascript倒数计时器发生变化

时间:2018-12-03 22:54:31

标签: javascript

我正在创建一个倒数计时器。我希望即使我在PC上更改时间和日期,计时器也要固定。但是当我在PC上更改日期和时间时,它会不断更改。请在下面查看我的代码。

如果用户从另一个时区打开它,我想显示相同的计时器。

谢谢

<div class="countdown">
    <p class="timer">
        <span id="days"></span> Day(s)
        <span id="hours"></span> Hour(s)
        <span id="minutes"></span> Minute(s)
        <span id="seconds"></span> Second(s)
    </p>
</div>

<script type="text/javascript">



function countdown(endDate) {
  let days, hours, minutes, seconds;
  
  endDate = new Date(endDate).getTime();
  
  if (isNaN(endDate)) {
	return;
  }
  
  setInterval(calculate, 1000);
  
  function calculate() {
  	var currentUtcTime = new Date(); // This is in UTC
    let startDate = new Date(currentUtcTime.toLocaleString('en-US', { timeZone: 'Asia/Singapore' }));
   
    startDate = startDate.getTime();
    startDate2 = currentUtcTime.getTime();


    let timeRemaining = parseInt((endDate - startDate) / 1000);
    
    if (timeRemaining >= 0) {
      days = parseInt(timeRemaining / 86400);
      timeRemaining = (timeRemaining % 86400);
      
      hours = parseInt(timeRemaining / 3600);
      timeRemaining = (timeRemaining % 3600);
      
      minutes = parseInt(timeRemaining / 60);
      timeRemaining = (timeRemaining % 60);
      
      seconds = parseInt(timeRemaining);
      
      document.getElementById("days").innerHTML = parseInt(days, 10);
      document.getElementById("hours").innerHTML = ("0" + hours).slice(-2);
      document.getElementById("minutes").innerHTML = ("0" + minutes).slice(-2);
      document.getElementById("seconds").innerHTML = ("0" + seconds).slice(-2);
    } else {
      return;
    }
  }
}

(function () { 
  countdown('12/05/2018 05:00:00 PM'); 
}());

</script>

0 个答案:

没有答案