首页 新闻 搜索 专区 学院

for遍历数据库时间进行倒计时

0
悬赏园豆:50 [待解决问题]

for遍历数据库时间进行倒计时只有第一个时间可以倒计时,遍历的第一个之后没有用是怎么回事,还请各位前辈指点一下

StarryのSky的主页 StarryのSky | 初学一级 | 园豆:152
提问于:2020-06-22 14:22
< >
分享
所有回答(1)
0

可以描述清楚点:比如:啥语言,啥数据库,啥情形下,主要代码是啥?

無腳鳥 | 园豆:645 (小虾三级) | 2020-06-22 15:59

C#web开发 ,sqlSever,

$.post("Selctemodel", { PrincipalId: $("#PrincipalId").val() }, function (data) {
for (let i = 0; i < data.length; i++) {
var mokuai = "<div class='img'>";
mokuai += "<div>";
mokuai += "<a href='ModelInfo?PrincipalId=" + data[i].PrincipalId + "&SGroupId=" + data[i].SGroupId + "'>";
mokuai += "<img src='" + data[i].Surfaceplot + "' alt=''>";
mokuai += "</a>";
mokuai += "</div>";
mokuai += "<div class='text'>";
mokuai += "<span class='spana'>" + data[i].SAfewperple + "人成团</span><span class='span'>" + data[i].SGroupTitle + "</span><p class='jia'><span class='xianjia'>¥" + data[i].SGrouppice + "</span><span style='color:#FF7013;'> </span><span style='color:#C9C9C9;' class='hua'>¥" + data[i].SRetailprice + "</span></p>";
mokuai += "<p class='xs'><span>已成5团 / 可成10团 / 每人限购" + data[i].SPurchase + "份</span><span class='txt'>提货点:" + data[i].StoreName + "</span></p>";
mokuai += "<p class='djs'><span id='sj'>剩余</span><a>00</a>天 <a>00</a>:<a>00</a>:<a>00</a><span class='sp'>下单2小时后</span></p>";
mokuai += " <a href='EditModel'> <div class='bianji'><p>编辑模板</p></div></a>";
mokuai += " </div>";
mokuai += "</div>";
mokuai += "<div>";

            var showtime = function () {
                var nowtime = new Date(),  //获取当前时间
                    endtime = new Date(ChangeDateFormat(data[i].Sfinishtime));  //定义结束时间
                var lefttime = endtime.getTime() - nowtime.getTime(),  //距离结束时间的毫秒数
                    leftd = Math.floor(lefttime / (1000 * 60 * 60 * 24)),  //计算天数
                    lefth = Math.floor(lefttime / (1000 * 60 * 60) % 24),  //计算小时数
                    leftm = Math.floor(lefttime / (1000 * 60) % 60),  //计算分钟数
                    lefts = Math.floor(lefttime / 1000 % 60);  //计算秒数
                return leftd + "天" + lefth + ":" + leftm + ":" + lefts;  //返回倒计时的字符串
            }
            setInterval(function () {
                $('#sj').append(showtime());
                $('#sj').html(" ");
                $('#sj').append(showtime());
            }, 1000);  //反复执行函数本身

            $("#newimg").append(mokuai);
        }
    });
支持(0) 反对(0) StarryのSky | 园豆:152 (初学一级) | 2020-06-22 16:01

@StarryのSky:
因为:setInterval意思是在每隔指定的毫秒数循环调用函数或表达式,直到clearInterval把它清除。
所以:在for循环遍历第一个数据时,setInterval一直在执行,并且是每隔1秒执行一次,永远不会结束;
所以:(只有第一个时间可以倒计时,遍历的第一个之后没有用)

支持(0) 反对(0) 無腳鳥 | 园豆:645 (小虾三级) | 2020-06-22 16:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册