我怎样才能让倒数计时器每服务器小时循环

问题描述

当我在 00:53 使用脚本时,倒计时显示最新的 07:00 分钟。当时间到时,倒数计时器每小时循环 59:59。我怎样才能做到这一点 ?我还需要时间到了,自动刷新页面

<!DOCTYPE html>
<html>
<head>
<Meta name="viewport" content="width=device-width,initial-scale=1" />
<style>
   body {
      font-family: "Segoe UI",Tahoma,Geneva,Verdana,sans-serif;
   }
   .timer {
      text-align: center;
      font-size: 60px;
      margin-top: 0px;
      color: white;
      background-color: rgb(100,38,214);
   }
</style>
</head>
<body>
<h1 style="text-align: center;">Countdown Timer Example</h1>
<h2 class="timer"></h2>
<script>
   var countDownDate = new Date("<?PHP echo strtotime('+1 hour',time()); ?>").getTime();
   var timeClear = setInterval(function() {
      var Now = new Date("<?PHP echo time(); ?>").getTime();
      var timeLeft = countDownDate - Now;
      var days = Math.floor(timeLeft / (1000 * 60 * 60 * 24));
      var hours = Math.floor(
         (timeLeft % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)
      );
      var minutes = Math.floor((timeLeft % (1000 * 60 * 60)) / (1000 * 60));
      var seconds = Math.floor((timeLeft % (1000 * 60)) / 1000);
      document.querySelector(".timer").innerHTML = days + "d " + hours + "h " + minutes + "m " + seconds + "s ";
      if (timeLeft < 0) {
         clearInterval(timeClear);
         document.querySelector(".timer").innerHTML = "Done";
      }
   },1000);
</script>
</body>
</html>

解决方法

我已经尝试过 moment.js,也许可以找到答案。我如何设置它以将 mysql 与 ajax 连接?

<script>
setInterval(function(){
const timeString = moment.utc(moment().endOf('hour').diff()).format('HH:mm:ss')
document.getElementById('timer').innerHTML = timeString;
},1000);
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<div id="timer"></div>

,

我尝试了另一种方法,首先将 php 日期设为 json 格式 计时器.php `

$date=date('Y/m/d H:i:s');

打印json_encode($date); ?>`

然后

<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script>
var serverdate;
$.get('localhost/test/timer.php',function(data){
   
   serverDate = data.date; });
setInterval(function(){
const data.date = moment.utc(moment().endOf('hour').diff()).format('HH:mm:ss')
document.getElementById('timer').innerHTML = data.date;
},1000);

</script>
</head>
<body>

<div id="timer"></div>



</body>
</html>

我很抱歉没有我的 javascript =(