使用PHP和Javascript进行多重倒计时

使用PHP和Javascript进行多重倒计时,javascript,php,mysql,Javascript,Php,Mysql,我目前正陷入一个问题,不知道如何解决它。我是新的php和javascript编码,所以请纠正我,如果有一个更简单的方法来做到这一点 我的问题是,我正试图让一个倒计时计时器为mysql数据库中的多个数据工作。我已经制作了一个成功的倒计时函数,它在php中使用if语句只处理一个数据,但是当我尝试在php中使用while语句处理多个数据时,它不起作用 //TODAY'S DATE $today = time(); //FETCHES DATE AND TIME FOR THE EVENT FROM

我目前正陷入一个问题,不知道如何解决它。我是新的php和javascript编码,所以请纠正我,如果有一个更简单的方法来做到这一点

我的问题是,我正试图让一个倒计时计时器为mysql数据库中的多个数据工作。我已经制作了一个成功的倒计时函数,它在php中使用if语句只处理一个数据,但是当我尝试在php中使用while语句处理多个数据时,它不起作用

//TODAY'S DATE
$today = time();

//FETCHES DATE AND TIME FOR THE EVENT FROM DATABASE
$sql = "SELECT * FROM post";
$result = mysqli_query($conn, $sql);

while ($row = mysqli_fetch_assoc($result)) {
    $title = $row['title'];
    $cname = $row['cname'];
    $team = $row['team'];
    $description = $row['description'];
    $endtime = $row['endtime'];

    echo "<tr>";
    echo "<td width='16%'><strong>Title:</strong></td>";
    echo "<td width='16%'>$title</td>";
    echo "</tr><tr>";
    echo "<td width='16%'><strong>Client name:</strong></td>";
    echo "<td width='16%'>$cname</td>";
    echo "</tr><tr>";
    echo "<td width='16%'><strong>Team:</strong></td>";
    echo "<td width='16%'>$team</td>";
    echo "</tr><tr>";
    echo "<td width='16%'><strong>Description:</strong></td>";
    echo "<td width='16%'>$description</td>";
    echo "</tr><tr>";
    echo "<td width='16%'><strong>End time:</strong></td>";
    echo "<td width='16%'>$endtime</td>";
    echo "</tr><tr>";
    echo"</BR>";
    echo"</BR>";
}

$conn->close();
//今天的日期
$today=时间();
//从数据库中获取事件的日期和时间
$sql=“从帖子中选择*”;
$result=mysqli\u查询($conn,$sql);
while($row=mysqli\u fetch\u assoc($result)){
$title=$row['title'];
$cname=$row['cname'];
$team=$row['team'];
$description=$row['description'];
$endtime=$row['endtime'];
回声“;
回声“标题:”;
回音“$title”;
回声“;
echo“客户端名称:”;
回显“$cname”;
回声“;
回声“团队:”;
回声“$team”;
回声“;
回声“描述:”;
回显“$description”;
回声“;
回声“结束时间:”;
回显“$endtime”;
回声“;
回声“
”; 回声“
”; } $conn->close();
下面是我的javascript,它假设运行倒计时

<script language="JavaScript"> 
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 $endtime; ?>';
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 pad(n) {
   // utility function to pad a number to 2 digits:
   return ('0' + n).substr(-2); 
}

function timer() {
    var todaySeconds = Math.floor(new Date().getTime() / 1000);
    // collect the html first in an array
    var html = [];
    // keep track whether there are still counters not yet zero:
    var allDone = true;
    // go through the list of dates:
    endDatesInSeconds.forEach(function (endDateSeconds) {
        var totalSeconds = endDateSeconds - todaySeconds;
        var days        = Math.floor(totalSeconds/24/60/60);
        var seconds     = Math.floor(totalSeconds - days*86400);
        var hours       = Math.floor(seconds/3600);
        seconds         = Math.floor(seconds - hours*3600);
        var minutes     = Math.floor(seconds/60);
        seconds         = seconds % 60;
        // add a part of html
        html.push(
            totalSeconds <= 0 
               ? 'project time Completed'
               : days + ":" + pad(hours) + ":" + pad(minutes) + ":" + pad(seconds));
        // when at least one counter is not complete, we are not done:
        allDone = allDone && totalSeconds <= 0;
    });
    // now put the html in the document:
    document.getElementById('countdown').innerHTML = html.join('<br/>');
    if (allDone) {
        clearInterval(countdownTimer);
    }
}

var countdownTimer = setInterval('timer()', 1000);
</script> 

var today=新日期();
var DD=today.getDate();
var MM=today.getMonth()+1//一月是零!
var YYYY=today.getFullYear();
//让我们看看这两个日期之间的差异
var_DateFromDBProgEndDate='';
var ProgEndTime=新日期(_DateFromDBProgEndDate);
var TodayTime=新日期();
var differenceTravel=ProgEndTime.getTime()-TodayTime.getTime();
var秒=数学地板((差程)/(1000));
////////////////////////////////
var secdiffromtoday=秒;
var seconds=SecDiffFromToday;
功能板(n){
//将数字填充到2位的实用功能:
返回('0'+n).substr(-2);
}
函数计时器(){
var todaySeconds=Math.floor(new Date().getTime()/1000);
//首先在数组中收集html
var html=[];
//跟踪是否还有尚未归零的计数器:
var allDone=true;
//浏览日期列表:
forEach(函数(endDateSeconds){
var totalSeconds=endDateSeconds-todaysonds;
变量天数=数学下限(总秒数/24/60/60);
var秒数=数学下限(总秒数-天*86400);
var小时=数学地板(秒/3600);
秒=数学地板(秒-小时*3600);
var分钟=数学地板(秒/60);
秒=秒%60;
//添加html的一部分
html.push(

totalSeconds如果您在脚本中使用同一个endtime,或者仅使用最后一个endtime,则可以每次复制脚本,或者创建js脚本,使endtime是一个参数,而不是由php硬编码,然后遍历每个endtime单元格并初始化一个新的timerSetTimeout,它需要一个函数而不是字符串。您将放在哪里将数据导入
endDatesInSeconds
?上述任何一项都不能解决问题。请提供进一步帮助。请提前感谢您在脚本中使用相同的endtime,或者仅使用最后一个endtime,或者每次复制脚本,或者创建js脚本,使endtime是一个参数,而不是由php硬编码,然后重试rse每个结束时间单元格并初始化一个新的timerSetTimeout需要一个函数而不是字符串。您将数据放在哪里?上述所有操作都无法解决此问题。请提供进一步帮助。提前感谢