最近在做一个购物网站的秒杀活动,其中涉及到了一个时间的倒计时.
所谓“秒杀”,就是网络卖家发布一些超低价格的商品,所有买家在同一时间网上抢购的一种销售方式。通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动。由于商品价格低廉,往往一上架就被抢购一空,有时只用一秒钟。
秒杀商品通常有两种限制:库存限制、时间限制。
数据库字段
这个功能我们使用的技术是angular $interval服务在前端实现的
代码:
//查询正在参与秒杀的商品$scope.findOne=function () {var id= $location.search()['id'];seckillGoodsService.findOneFromRedis(id).success(function (response) {$scope.entity=response;//计算当前时间到结束时间的总秒数secondAll=Math.floor((new Date(response.endTime).getTime()-new Date().getTime())/1000);timer= $interval(function () {secondAll=secondAll-1;if (secondAll==0){$interval.cancel(timer)alert("秒杀活动已结束!")}else {$scope.timeString=convertTimeString(secondAll);}},1000);});}把秒转换为 天小时分钟秒格式 XXX天 10:22:33convertTimeString=function (secondAll) {var days=Math.floor(secondAll/(60*60*24));//天数var hours=Math.floor((secondAll-days*60*60*24)/(60*60));//小时数var minutes=Math.floor((secondAll-days*60*60*24-hours*60*60)/60);//分钟var seconds=secondAll-days*60*60*24-hours*60*60-minutes*60;//秒var timeString="";if (days>0){timeString=days+"天"}return timeString+hours+":"+minutes+":"+seconds}
页面引用
最终的效果如图: