使用PHP和Javascript进行多次倒计时 [英] Multiple Countdown using PHP and 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屋!