页面设置倒计时
首先我们获取倒计时,是将时间转化为多少多少秒,然后计算再转换回去
<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> <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 + "秒");
}
}
这样我们就可以实现倒计时了