Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php循环内的javascript倒计时不工作_Javascript_Php_Timer - Fatal编程技术网

php循环内的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

嗨,我正试图通过javascript添加多个倒计时计时器,但不知如何,它不起作用,谁能告诉我我做错了什么,我是一只新蜜蜂

以下是代码:

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
只需将
行更改为
,并将
行更改为
对不起,我不明白数据库中存储的两个日期,请重新表述您的评论。