逻辑如下:
1、先判断两个时间的时间差,当然如果得到的时间是13位时间戳的话你需要转化一下
2、判断时间够一天显示天数,够一小时显示小时数
相关代码:
//获取时间,时间戳转换,不是则不转var mydate1 = new Date(parseInt(time1.replace("/Date(", "").replace(")/", "")))
var mydate2 = new Date(parseInt(time2.replace("/Date(", "").replace(")/", "")))
//获取剩余秒数
var timerc =dateDiff(mydate, '2015/05/19 10:00:00') / 1000
function dateDiff(date1, date2) {
var dt1 = new Date(Date.parse(date1))
var dt2 = new Date(Date.parse(date2))
try {
return Math.round((dt2.getTime() - dt1.getTime()))
}
catch (e) {
return e.message
}
}
//循环调用倒计时
function add() { //加时函数
--timerc //时间变量自减1
var day = parseInt(timerc / 86400)
var hour = parseInt((timerc % 86400) / 3600)
var min = parseInt((timerc % 3600) / 60)
var sec = Number(parseInt(timerc % 60 / 10)).toString() + Number(parseInt((timerc % 10))).toString()
if (day > 0) { //如果不到5分钟
$("#day").html(day + '天') //写入天数
$("#hour").html(hour + '时') //写入小时数
$("#min").html(min + '分') //写入分钟数
$("#sec").html(sec + '秒') //写入秒数(两位)
}
else if (hour > 0) {
$("#hour").html(hour + '时') //写入小时数
$("#min").html(min + '分') //写入分钟数
$("#sec").html(sec + '秒') //写入秒数(两位)
}
else if (min > 0) {
$("#min").html(min + '分') //写入分钟数
$("#sec").html(sec + '秒') //写入秒数(两位)
}
else if (sec != '00') {
$("#sec").html(sec + '秒') //写入秒数(两位)
}
else {
tiao(activity) return true//时间到0调用函数
}
setTimeout("add()", 1000) //设置1000毫秒以后执行一次本函数
}
望采纳!
function countdown(when, callback){// 判断当前时间
var now = Date.now()
if(when < now){
throw '开始时间不能小于当前时间'
}
// 如果大于当前时间,则过了相差的时间后再执行此函数
else if(when > now){
setTimeout(function(){
countdown(when, callback)
}, when - now)
} else{
// 开始倒计时,这里的逻辑你没有描述
}
}
注意,js的定时并不是完全准确的。所有的setXXX之类的延时函数都是等计算机空闲下来才会执行
var t=60var a=setInterval(daojishi,1000)//1000毫秒
function daojishi(){
t--
//刷新时间显示
if(t==0){
clearInterval(a)
//倒计时结束
}
}