PHP/Javascript скрипт обратного отсчета

Примечание * Я хочу, чтобы кто-нибудь исправил это и рассказал мне, как они это сделали, а не советы о том, как это сделать или комментарии о том, что в нем смешаны php и java < em>*

У меня есть сценарий обратного отсчета, который работает, но когда он достигает целевой даты, таймер продолжает идти к отрицательному времени. Я хочу, чтобы он остановился на этой целевой дате и просто отобразил завершающее сообщение. Он в прямом эфире на моем сайте. Мне просто нужна помощь в редактировании сценария обратного отсчета.

Я хочу сохранить тот же макет. Мне нужна помощь в добавлении завершающего сообщения и предотвращении его перехода в отрицательную дату, или просто сделать так, чтобы он не отображал 0 дней, 0 часов, 0 минут, 0 секунд до официального выпуска сайта. Когда это, наконец, произойдет, я хочу, чтобы он отображал сообщение.

сценарий обратного отсчета

<?php date_default_timezone_set('EST'); ?>
<?php
// Define your target date here
    $targetYear  = 2011;
    $targetMonth = 9;
    $targetDay   = 1;
    $targetHour  = 20;
    $targetMinute= 00;
    $targetSecond= 00;
// End target date definition

// Define date format
$dateFormat = "Y-m-d H:i:s";

$targetDate = mktime($targetHour,$targetMinute,$targetSecond,$targetMonth,$targetDay,$targetYear);
$actualDate = time();

$secondsDiff = $targetDate - $actualDate;

$remainingDay     = floor($secondsDiff/60/60/24);
$remainingHour    = floor(($secondsDiff-($remainingDay*60*60*24))/60/60);
$remainingMinutes = floor(($secondsDiff-($remainingDay*60*60*24)-($remainingHour*60*60))/60);
$remainingSeconds = floor(($secondsDiff-($remainingDay*60*60*24)-($remainingHour*60*60))-($remainingMinutes*60));

$targetDateDisplay = date($dateFormat,$targetDate);
$actualDateDisplay = date($dateFormat,$actualDate);

?>
<script type="text/javascript">
  var days = <?php echo $remainingDay; ?>  
  var hours = <?php echo $remainingHour; ?>  
  var minutes = <?php echo $remainingMinutes; ?>  
  var seconds = <?php echo $remainingSeconds; ?>  
</script>
<body onLoad="setCountDown();">
<center><?php echo "$remainingDay days, $remainingHour hours, $remainingMinutes minutes and $remainingSeconds seconds";?> untill official release</center>

как его добавили на сайт

<script type="text/javascript">
$(function() {
    /* Union War */
    $("#Countdown2").load("http://imperialism.zxq.net/includes/process/uwcountdown.php");

    setInterval(function(){
        $("#Countdown2").load("http://imperialism.zxq.net/includes/process/uwcountdown.php");
    }, 1000);
});
</script>

<div id="uwCD" class="uwCD">
    <div id="Countdown2"></div>
</div>

person kyle1046    schedule 02.09.2011    source источник
comment
Хорошо, а где скрипт (т.е. файл .js), который вы используете? Он куда-то включается?   -  person NullUserException    schedule 02.09.2011
comment
(1) проблема в JavaScript (функция setCountDown, я бы предположил), но это не тот пример, который вы предоставили. Решение (вероятно) заключается в том, что вы вычисляете оставшееся значение, просто добавляете условие, которое проверяет, сколько времени осталось. (2) просто в качестве примечания, не совсем уверен, зачем вам нужно смешивать php и javascript в этом скрипте. Я думаю, что было бы лучше, если бы все это было в javascript.   -  person Dmitry F    schedule 02.09.2011
comment
@sanmai извините, но это не то, что я делаю, чтобы установить целевую дату, и она не запускается из mysql   -  person kyle1046    schedule 02.09.2011


Ответы (2)


Я рекомендую этот плагин обратного отсчета jQuery; просто передайте значение PHP в вызов плагина jQuery.

person Rajasekar Gunasekaran    schedule 02.09.2011

попробуйте использовать все это http://www.timeanddate.com/counters/customcount.html сделано для вас, и все работает нормально, и если что, вы можете просто отредактировать внешний вид скина, чтобы он соответствовал вашему веб-сайту.

person Ro8bi3    schedule 19.04.2012