由于一个活动页面里面有多个活动,所以用map去操作每一个对象,只有一个活动的话就不需要遍历了,活动分为距离活动开始和距离活动结束两个倒计时,自己可按需求增减代码。还有就是IOS不兼容时间用“-”连接,所以移动端的话要把“-”替换成“/”做一下兼容。
var timer = setInterval(function() {
mapForItem:function() {
data.map(function(item) {
var startTime = new Date(item.timeStart.replace(/-/g, "/")).getTime()
var endtTime = new Date(item.timeEnd.replace(/-/g, "/")).getTime()
var currentTime = new Date().getTime()
var surplusTime = startTime - currentTime > 0 ? startTime - currentTime : endtTime - currentTime
item.hours = Math.floor(surplusTime / (1000 * 60 * 60)) < 10 ? '0' + Math.floor(surplusTime / (1000 * 60 * 60)) : Math.floor(surplusTime / (1000 * 60 * 60))
surplusTime = surplusTime - (item.hours * 1000 * 60 * 60)
item.minunts = Math.floor(surplusTime / (1000 * 60)) < 10 ? '0' + Math.floor(surplusTime / (1000 * 60)) : Math.floor(surplusTime / (1000 * 60))
surplusTime = surplusTime - (item.minunts * 1000 * 60)
item.seconds = Math.floor(surplusTime / 1000) < 10 ? '0' + Math.floor(surplusTime / 1000) : Math.floor(surplusTime / 1000)
if(endtTime - currentTime < 1000) {
clearInterval(timer)
item.hours = '00'
item.minunts = '00'
item.seconds = '00'
}
})
},
}, 1000)