#javascript #loops #timer #countdown #hour
#javascript #циклы #таймер #обратный отсчет #час
Вопрос:
когда я использую скрипт в 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>
Ответ №1:
я пробовал 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>
Ответ №2:
сначала я попробовал другой способ перевести дату php в формат json timer.php `<?php включить(‘config.php ‘);
$date=date(‘Y / m / d H: i:s’);
print 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 = (