页面设置倒计时

页面设置倒计时

首先我们获取倒计时,是将时间转化为多少多少秒,然后计算再转换回去

<script type="text/javascript">
        var leftTime=600; // 1000*1*10 (十分钟)
        //时间倒计时
        function backTime(){
            var d,h,m,s;
            if(leftTime>0){
                d=Math.floor(leftTime/1000/60/60/24);  //天
                h=Math.floor(leftTime/1000/60/60%24);  //时
                m=checkTime(Math.floor(leftTime/1000/60%60));  //分
                s=checkTime(Math.floor(leftTime/1000%60));     //秒
                leftTime=leftTime-1000; //每次进来将总时间减去1秒
                document.getElementById("backtime").innerHTML=" "+h+"时 :"+m+"分 :"+s+"秒" ;
            }else{
                leftTime=600000;//时间到后,重置一个时间
            }
            setTimeout(backTime,1000); //设置定时任务,1秒钟执行一次

        }

        //获取当前时间
        function disptime(){
            var date=new Date();//获取当前时间(包括日期)
            var year=date.getFullYear();
            var month=checkTime(date.getMonth()+1);
            var day=checkTime(date.getDate());
            var hh=checkTime(date.getHours());
            var mm=checkTime(date.getMinutes());
            var ss=checkTime(date.getSeconds());
            document.getElementById("currentTime").innerHTML=" "+year+"-"+month+"-"+day+" "+hh+":"+mm+":"+ss;
            var myTimer=setTimeout("disptime()",1000);
        }


        //在number小于10的数组前补0
        function checkTime(i){
            if(i<10){
                i="0"+i;
            }
            return i;
        }

        window.onload=function(){
            disptime();//当前时间
            backTime();//倒计时
        }
    </script>
    <div style="margin-top:8px;">
          当前时间:<span id="currentTime" style="color: green; "></span> &nbsp;&nbsp;&nbsp;&nbsp; <br>
          剩余时间: <span id="backtime" color="red" ></span>
    </div>

那么问题就回来了,我们要怎么转换成多少秒

sql语句时间转换

我们可以通过这么一条语句将时间转换为多少秒的形式

select TIME_TO_SEC("02:10:11") 

还可以通过这条sql语句获得时间差值差了多少秒

select TIMESTAMPDIFF(SECOND  ,'2012-08-24','2012-08-30'); 

FRAC_SECOND 间隔是毫秒
SECOND 秒
MINUTE 分钟
HOUR 小时
DAY 天
WEEK 星期
MONTH 月
QUARTER 季度
YEAR 年

所以我们综合下,就可以得到这么一个sql语句进行查询

SELECT t_game.create_time,t_game.delete_time,
(TIME_TO_SEC(t_game.delete_time) - TIME_TO_SEC(t_game.create_time))
FROM t_game

得到正确的结果

还可以通过java语句写的后台

package test;

import java.util.Timer;
import java.util.TimerTask;

public class daojishi {
    private static long day = 0;
    private static long hour = 0;
    private static long minute = 0;
    private static long second = 0;

    private static boolean dayNotAlready = false;
    private static boolean hourNotAlready = false;
    private static boolean minuteNotAlready = false;
    private static boolean secondNotAlready = false;

    public static void main(String[] args) {

        long totalSeconds = 60 * 60 * 24 * 34 + 21;         //入参限定时间是多少秒
        initData(totalSeconds);

        new Timer().schedule(new TimerTask() {
            public void run() {
                if (secondNotAlready) {
                    startCount();
                } else {
                    cancel();
                }

            }
        }, 0, 1000);
    }

    /**
     * 初始化赋值
     *
     * @param totalSeconds
     */
    private static void initData(long totalSeconds) {
        resetData();

        if (totalSeconds > 0) {
            secondNotAlready = true;
            second = totalSeconds;
            if (second >= 60) {
                minuteNotAlready = true;
                minute = second / 60;
                second = second % 60;
                if (minute >= 60) {
                    hourNotAlready = true;
                    hour = minute / 60;
                    minute = minute % 60;
                    if (hour > 24) {
                        dayNotAlready = true;
                        day = hour / 24;
                        hour = hour % 24;
                    }
                }
            }
        }

        System.out.println("初始格式化后——>" + day + "天" + hour + "小时" + minute
                + "分钟" + second + "秒");
    }

    private static void resetData() {
        day = 0;
        hour = 0;
        minute = 0;
        second = 0;
        dayNotAlready = false;
        hourNotAlready = false;
        minuteNotAlready = false;
        secondNotAlready = false;
    }

    /**
     * 计算各个值的变动
     *
     */
    public static void startCount() {
        if (secondNotAlready) {
            if (second > 0) {
                second--;
                if (second == 0 && !minuteNotAlready) {
                    secondNotAlready = false;
                }
            } else {
                if (minuteNotAlready) {
                    if (minute > 0) {
                        minute--;
                        second = 59;
                        if (minute == 0 && !hourNotAlready) {
                            minuteNotAlready = false;
                        }

                    } else {
                        if (hourNotAlready) {
                            if (hour > 0) {
                                hour--;
                                minute = 59;
                                second = 59;
                                if (hour == 0 && !dayNotAlready) {
                                    hourNotAlready = false;
                                }

                            } else {
                                if (dayNotAlready) {
                                    day--;
                                    hour = 23;
                                    minute = 59;
                                    second = 59;
                                    if (day == 0) {
                                        dayNotAlready = false;
                                    }

                                }
                            }
                        }
                    }

                }
            }

        }

        System.out.println("距离截止日期还有——>" + day + "天" + hour + "小时" + minute
                + "分钟" + second + "秒");
    }

}

这样我们就可以实现倒计时了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值