Создание динамического таймера обратного отсчета JavaScript - PullRequest
0 голосов
/ 11 апреля 2011

Я хочу создать динамический таймер обратного отсчета javascript, хочу передать ему переменную datetime из моей базы данных SQL-сервера и просчитать ее до этой даты, а затем отобразить сообщение. Я перепробовал почти каждый плагин JQuery Я могу найти и не смог отредактировать их, чтобы сделать то, что мне нужно, мне также нужно иметь возможность иметь несколько таймеров обратного отсчета на одной странице,

Любая помощь будет очень ценной

Приветствия

Scott

======= ======= EDIT

После долгих проб и ошибок я смог изменить это js http://andrewu.co.uk/clj/countdown/pro/

чтобы сделать то, что мне нужно

Ответы [ 2 ]

0 голосов
/ 24 ноября 2015
//TODAY'S DATE
$today = time();
//FETCHES DATE AND TIME FOR THE EVENT FROM DATABASE

$sql = "SELECT * FROM post";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
$Row = (mysqli_fetch_assoc($result));
$th = $Row['endtime'];    
}
echo $th

first of all put it into a variable then use your javascript to call the variable

//let get todays date here
var today = new Date();
var DD = today.getDate();
var MM = today.getMonth()+1; //January is 0!
var YYYY = today.getFullYear();
//let get the Difference in Sec btw the two dates
var _DateFromDBProgEndDate = '<?php echo $th; ?>';
var ProgEndTime = new Date(_DateFromDBProgEndDate);
var TodayTime = new Date();

var differenceTravel = ProgEndTime.getTime()- TodayTime.getTime() ;
var seconds = Math.floor((differenceTravel) / (1000));
////////////////////////////////
var SecDiffFromToday = seconds;
var seconds = SecDiffFromToday;
function timer() {
    var days        = Math.floor(seconds/24/60/60);
    var hoursLeft   = Math.floor((seconds) - (days*86400));
    var hours       = Math.floor(hoursLeft/3600);
    var minutesLeft = Math.floor((hoursLeft) - (hours*3600));
    var minutes     = Math.floor(minutesLeft/60);
    var remainingSeconds = seconds % 60;
    if (remainingSeconds < 10) {
        remainingSeconds = "0" + remainingSeconds; 
    }
    document.getElementById('countdown').innerHTML = days + ":" + hours + ":" + minutes + ":" + remainingSeconds;
    if (seconds == 0) {
        clearInterval(countdownTimer);
        document.getElementById('countdown').innerHTML = "Completed";
    } else {
        seconds--;
    }
}
var countdownTimer = setInterval('timer()', 1000);
</script>


the  javascript call in the variable with  '<?php echo $th; ?>'; then the javascript does the count down with out refreshing the page
0 голосов
/ 18 июня 2013

попробуйте это:

function Thick(startin) {
  startin--;
  document.getElementById('timer').innerHTML = startin;
  if(startin > 0) setTimeout('Thick(' + startin + ')', 1000);
}

вызовите таким образом функцию в теле onLoad как:

<body onLoad="Thick(20);">

надеюсь, что это поможет:)

...