使用PHP和Javascript进行多次倒计时 [英] Multiple Countdown using PHP and Javascript

查看:66
本文介绍了使用PHP和Javascript进行多次倒计时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前遇到问题但不确定如何解决。我是php和javascript编码的新手,如果有更简单的方法,请纠正我。



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



  //  今天的日期 
$ today = time();

// 数据库事件的日期和时间
$ sql = SELECT * FROM post;
$ result = mysqli_query($ conn,$ sql);

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

echo < TR>中;
echo < td width =' 16%'>的标题< / TD GT&;;
echo < td width =' 16%> $标题< / TD GT&;;
echo < / tr>< ; TR>中;
echo < td width =' 16%'> 客户名称:< / td>;
echo < td width =' 16%> $ CNAME< / TD>中;
echo < / tr>< ; TR>中;
echo < td width =' 16%'>的小组:< / TD GT&;;
echo < td width =' 16%> $团队< / TD GT&;;
echo < / tr>< ; TR>中;
echo < td width =' 16%'> 说明< / TD GT&;;
echo < td width =' 16%> $描述< / TD GT&;;
echo < / tr>< ; TR>中;
echo < td width =' 16%'> 结束时间:< / td>;
echo < td width =' 16%> $结束时间< / TD>中;
echo < / tr>< ; TR>中;
echo < / BR> ;
echo < / BR> ;
}

$ conn-> close();





以下是我的javascript假设要倒计时





  var  today =  new  日期(); 
var DD = today.getDate();
var MM = today.getMonth()+ 1; // 1月为0!
var YYYY = today.getFullYear();
// 让我们获得两个日期的差异
var _DateFromDBProgEndDate = ' <?php echo $ endtime; ?>';
var ProgEndTime = new 日期(_ DateFromDBProgEndDate);
var TodayTime = new 日期();

var differenceTravel = ProgEndTime.getTime() - TodayTime.getTime();
var seconds = 数学 .floor((differenceTravel)/( 1000 ));
// //////////////////// //////////
var SecDiffFromToday = seconds;
var seconds = SecDiffFromToday;

function pad(n){
// 实用程序函数将数字填充为2位数:
return ' 0' + n).substr(-2);
}

function timer(){
var todaySeconds = 数学 .floor( new 日期()。getTime()/ 1000 );
// 首先在数组中收集html
var html = [];
// 跟踪是否还有计数器尚未归零:
< span class =code-keyword> var
allDone = true ;
// 查看日期列表:
endDatesInSeconds.forEach(< span class =code-keyword> function
(endDateSeconds){
var totalSeconds = endDateSeconds - todaySeconds;
var days = 数学 .floor(totalSeconds / 24/60/60);
var seconds = Math .floor(totalSeconds - days * 86400);
var hours = 数学 .floor(秒/ 3600);
秒= 数学 .floor(秒 - 小时* 3600);
var minutes = 数学 .floor (秒/ 60);
秒=秒% 60 ;
// 添加html的一部分
html.push(
totalSeconds< = 0
' 项目时间已完成'
:天数+ + pad(小时) )+ + pad(分钟)+ + pad(seconds));
// 当至少一个计数器未完成时,我们还没有完成:
allDone = allDone&& totalSeconds< = 0 ;
});
// 现在将html放在文档中:
document .getElementById(' countdown')。innerHTML = html .join(' < br />');
if (allDone){
clearInterval(countdownTimer);
}
}

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

javascript通过从php获取值来运行倒计时(var _DateFromDBProgEndDate ='';)

解决方案

< blockquote>今天 = time();

// 数据库事件的日期和时间


sql = SELECT * FROM post;


result = mysqli_query(


I am currently stuck on a problem and not sure how to solve it. I am new to php and javascript coding so do please correct me if there is an easier way to do this.

My problem is that I am trying to get a countdown timer working for multiple data in mysql database. I have already made a successful countdown time function that only works with one data using the if statement in php, but when I try to do it with multiple data using the while statement in php it doesn't work.here is my php code.

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

$conn->close();



below is my javascript that suppose to run the count down


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>

the javascript run the countdown by getting it value from the php (var _DateFromDBProgEndDate = '';)

解决方案

today = time(); //FETCHES DATE AND TIME FOR THE EVENT FROM DATABASE


sql = "SELECT * FROM post";


result = mysqli_query(


这篇关于使用PHP和Javascript进行多次倒计时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆