php循环内的javascript倒计时不工作
嗨,我正试图通过javascript添加多个倒计时计时器,但不知如何,它不起作用,谁能告诉我我做错了什么,我是一只新蜜蜂 以下是代码:php循环内的javascript倒计时不工作,javascript,php,timer,Javascript,Php,Timer,嗨,我正试图通过javascript添加多个倒计时计时器,但不知如何,它不起作用,谁能告诉我我做错了什么,我是一只新蜜蜂 以下是代码: php while loop { <script> var timer; var days= <?php echo $datediff ; ?>; var compareDate = new Date(); compareDate.setDate(compareDate.getDat
php while loop {
<script>
var timer;
var days= <?php echo $datediff ; ?>;
var compareDate = new Date();
compareDate.setDate(compareDate.getDate() + <?php echo $datediff ?> ); //just for this demo today + 7 days
timer = setInterval(function() {
timeBetweenDates(compareDate);
}, 1000);
function timeBetweenDates(toDate) {
var dateEntered = toDate;
var now = new Date();
var difference = dateEntered.getTime() - now.getTime();
if (difference <= 0) {
// Timer done
clearInterval(timer);
} else {
var seconds = Math.floor(difference / 1000);
var minutes = Math.floor(seconds / 60);
var hours = Math.floor(minutes / 60);
var days = Math.floor(hours / 24);
hours %= 24;
minutes %= 60;
seconds %= 60;
$(".days") .text(days);
$(".hours").text(hours);
$(".minutes").text(minutes);
$(".seconds").text(seconds);
}
}
</script>
<div class="timer">
<span class="days"></span>days
<span class="hours"></span>hours
<span class="minutes"></span>minutes
<span class="seconds"></span>seconds
</div>
php while循环{
无功定时器;
var天数=;
var compareDate=新日期();
compareDate.setDate(compareDate.getDate()+);//今天仅此演示+7天
计时器=设置间隔(函数(){
时间间隔(比较);
}, 1000);
函数时间间隔数据(toDate){
var dateEntered=toDate;
var now=新日期();
var difference=dateEntered.getTime()-now.getTime();
如果(差异如果我在这里的想法正确,你需要在这里使用全局变量和局部变量,而不是覆盖每个循环中全局范围的值
请检查此代码,并让我知道它是否在某些方面对您有所帮助
<?php
$datediffs = [7, 8, 9, 10]; //let's say this is the array of results from the database
?>
<html>
<head>
<script src="//code.jquery.com/jquery-3.1.1.min.js"></script>
</head>
<body>
<script>
var timer = []
var timestamp = new Date()
function timeBetweenDates(toDate, key) {
var now = new Date()
var difference = toDate.getTime() - now.getTime()
if ( difference <= 0 )
{
// Timer done
clearInterval( timer[key] );
}
else
{
var seconds = Math.floor( difference / 1000 )
var minutes = Math.floor( seconds / 60 )
var hours = Math.floor( minutes / 60 )
var days = Math.floor( hours / 24 )
hours %= 24
minutes %= 60
seconds %= 60
var $timer = $( '.timer-' + key )
$timer.find( '.days' ).text( days )
$timer.find( '.hours' ).text( hours )
$timer.find( '.minutes' ).text( minutes )
$timer.find( '.seconds' ).text( seconds )
}
}
</script>
<?php foreach ( $datediffs as $key => $datediff ) : ?>
<script>
timer.push( setInterval( function()
{
var compareDate = new Date()
compareDate.setTime( timestamp.getTime() )
compareDate.setDate( compareDate.getDate() + <?php echo $datediff ?> )
timeBetweenDates( compareDate, <?php echo $key; ?> )
}, 1000) )
</script>
<div class="timer-<?php echo $key; ?>">
<span class="days"></span> days
<span class="hours"></span> hours
<span class="minutes"></span> minutes
<span class="seconds"></span> seconds
</div>
<?php endforeach; ?>
</body>
</html>
嘿,我试过了,它对我有效。你检查过浏览器开发工具上的控制台没有错误吗?在这里显示完整的代码,我会尽力帮你找出问题所在。我尝试在一个while循环中处理它,在这里我获取产品信息。等等,让我输入完整的代码($row=mysql\u fetch\u assoc($consulta)){?>你能用mysql while loop替换每个循环吗?这样我就很容易理解了吗?while($row=mysql\u fetch\u assoc($consulta)){?>$datediff=$\u row['days']}好的,我在db 1中存储了两个日期。2017-12-27(截止日期)2 2017-12-26(时间戳)现在如何开始更改的foreach
为而只需将
行更改为
,并将
行更改为
对不起,我不明白数据库中存储的两个日期,请重新表述您的评论。