页面代码

<div class="time "  class=""  id="onBidtime125" pid="125">
<div class="timeicon" ></div>
距离结束:<span class="day">-</span> 天 <span class="hour">-</span> 小时 <span class="minute">-</span> 分 <span class="second">-</span> 秒
<script type="text/javascript">
$(function(){
endDown2("1472287680","1470660651","#onBidtime125","#onBidtime125 .day","#onBidtime125 .hour","#onBidtime125 .minute","#onBidtime125 .second");
});
</script>
</div>

  JS代码

/ 结束倒计时
//etime 结束时间
//ntime 服务器时间
function endDown2(etime,ntime,boxobj,day_elem,hour_elem,minute_elem,second_elem)
var now_time = new Date(ntime*1000);
var end_time = new Date(etime*1000);
var sys_second = (end_time-now_time)/1000;
var timer = setInterval(function(){
if (sys_second > 0) {
sys_second -= 1;
var day = Math.floor((sys_second / 3600) / 24);
var hour = Math.floor((sys_second / 3600) % 24);
var minute = Math.floor((sys_second / 60) % 60);
var second = Math.floor(sys_second % 60);
day_elem && $(day_elem).text(day);//计算天
$(hour_elem).text(hour<10?"0"+hour:hour);//计算小时
$(minute_elem).text(minute<10?"0"+minute:minute);//计算分
$(second_elem).text(second<10?"0"+second:second);// 计算秒
} else {
clearInterval(timer);
$('#bidTimeStatus').remove();
$(boxobj).html('');
$(boxobj).addClass('end');
}
}, 1000);
}
// 开始倒计时
function startDown2(etime,ntime,boxobj,day_elem,hour_elem,minute_elem,second_elem){
var now_time = new Date(ntime*1000);
var end_time = new Date(etime*1000);
var sys_second = (end_time-now_time)/1000;
var timer = setInterval(function(){
if (sys_second > 0) {
sys_second -= 1;
var day = Math.floor((sys_second / 3600) / 24);
var hour = Math.floor((sys_second / 3600) % 24);
var minute = Math.floor((sys_second / 60) % 60);
var second = Math.floor(sys_second % 60);
day_elem && $(day_elem).text(day);//计算天
$(hour_elem).text(hour<10?"0"+hour:hour);//计算小时
$(minute_elem).text(minute<10?"0"+minute:minute);//计算分
$(second_elem).text(second<10?"0"+second:second);// 计算秒
} else {
$('.noStartBidTbox .th').html('拍卖已开始');
$(boxobj).html('');
$(boxobj).addClass('into');
}
}, 1000);
}

  需要时时与服务器同步时间JS代码

function endDown(etime,ntime,boxobj,day_elem,hour_elem,minute_elem,second_elem,msec_elem){
var now_time = new Date(ntime*1000);
var end_time = new Date(etime*1000);
var native_time = new Date().getTime(); //本地时间
var now_cha = now_time - native_time; //服务器和本地时间差
var native_end_time = end_time - now_cha; //本地结束时间
var sys_second = 0;
var bidpids = $(boxobj).attr('pid');
if(bidpids){
var bidpid = bidpids;
}
endDowntimer = setInterval(function(){
// 检查本地时间是否更改
if(Math.abs(native_time - new Date().getTime())>1000){
clearInterval(endDowntimer);
$.post(ajaxGetTime, {'pid':bidpid},function(data){
endDown(data.endtime,data.nowtime,boxobj,day_elem,hour_elem,minute_elem,second_elem,msec_elem);
});
}
sys_second = (native_end_time - new Date().getTime())/100; //本地结束剩余时间
if (sys_second > 0) {
sys_second -= 1;
var day = Math.floor((sys_second / 36000) / 24);
var hour = Math.floor((sys_second / 36000) % 24);
var minute = Math.floor((sys_second / 600) % 60);
var second = Math.floor((sys_second/10) % 60);
var msec = Math.floor(sys_second % 10); //毫秒
day_elem && $(day_elem).text(day);//计算天
$(hour_elem).text(hour<10?"0"+hour:hour);//计算小时
$(minute_elem).text(minute<10?"0"+minute:minute);//计算分
$(second_elem).text(second<10?"0"+second:second);// 计算秒
$(msec_elem).text(msec);// 计算秒的1/10
native_time = new Date().getTime();
} else {
clearInterval(endDowntimer);
// 本地时间结束提交服务器验证是否结束
$.post(ajaxCheckSucc, {'pid':bidpid},function(data){
if(data.status==0){
// startDown(data.end_time,data.now_time,".noStartTime",".noStartTime .day",".noStartTime .hour",".noStartTime .minute",".noStartTime .second",".noStartTime .msec");
endDown(data.end_time,data.now_time,boxobj,day_elem,hour_elem,minute_elem,second_elem,msec_elem);
}else{
if(data.status==1){
$('#bidTimeStatus').remove();
$(boxobj).html('');
$(boxobj).addClass('end');
var user = data.nickname;
if(data.uid==userid){user ='您';}
var msg = '恭喜'+user+'以'+data.money+'元,拍到《'+data.pname+'》';
}else if (data.status==2){
var msg = '《'+data.pname+'》未达到保留价,流拍!'
}
popup.success(msg,'结束提示',function(action){
//success 返回两个 action 值,分别是 'ok' 和 'close'。
if(action == 'ok'){
window.top.location.reload();
}
if(action == 'close'){
window.top.location.reload();
}
});
}
});
}
}, 100);
}
// 开始时间倒计时
function startDown(etime,ntime,boxobj,day_elem,hour_elem,minute_elem,second_elem,msec_elem){
var now_time = new Date(ntime*1000);
var end_time = new Date(etime*1000);
var native_time = new Date().getTime(); //本地时间
var now_cha = now_time - native_time; //服务器和本地时间差
var native_end_time = end_time - now_cha; //本地结束时间
var sys_second = 0;
var bidpids = $(boxobj).attr('pid');
if(bidpids){
var bidpid = bidpids;
}
startDowntimer = setInterval(function(){
if(Math.abs(native_time - new Date().getTime())>1000){
clearInterval(startDowntimer);
$.post(ajaxGetTime, {'pid':bidpid},function(data){
startDown(data.endtime,data.nowtime,boxobj,day_elem,hour_elem,minute_elem,second_elem,msec_elem);
});
}
sys_second = (native_end_time - new Date().getTime())/100; //本地结束剩余时间
if (sys_second > 0) {
sys_second -= 1;
var day = Math.floor((sys_second / 36000) / 24);
var hour = Math.floor((sys_second / 36000) % 24);
var minute = Math.floor((sys_second / 600) % 60);
var second = Math.floor((sys_second/10) % 60);
var msec = Math.floor(sys_second % 10); //毫秒
day_elem && $(day_elem).text(day);//计算天
$(hour_elem).text(hour<10?"0"+hour:hour);//计算小时
$(minute_elem).text(minute<10?"0"+minute:minute);//计算分
$(second_elem).text(second<10?"0"+second:second);// 计算秒
$(msec_elem).text(msec);// 计算秒的1/10
native_time = new Date().getTime();
} else {
$('.noStartBidTbox .th').html('拍卖已开始');
$(boxobj).html('');
$(boxobj).addClass('into');
window.top.location.reload();
}
}, 100);
}

  

destoon开发笔记-JQ+JS实现倒计时功能的更多相关文章

  1. 用js实现倒计时功能

    源码如下: 原理很简单,看注释吧 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  2. js网页倒计时功能(天,时,分,秒)

    给定任何一个时间,然后实现现在到那个时间的倒计时. 下面的例子是显示现在到2019年8月1号0时0分的倒计时: <div class="list"> <span ...

  3. destoon开发笔记-调取资讯标题图

    今天刚申请博客园的博客,申请速度挺快的.之前我的文章都是发在自己搭建的博客网站,但是是香港服务器,不想续费了,所以就关闭了.之前的数据也没有了,挺可惜了.不过既然加入博客园的大家庭,我就在这每天记录工 ...

  4. Android 开发笔记___SQLite__优化记住密码功能

    package com.example.alimjan.hello_world; /** * Created by alimjan on 7/4/2017. */ import com.example ...

  5. Django开发笔记六

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.登录功能完善 登录成功应该是重定向到首页,而不是转发 ...

  6. 微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能

    微信小程序+WEB使用JS实现注册[60s]倒计时功能开发步骤: 1.wxml页面代码: <text>绑定手机</text> <form bindsubmit=" ...

  7. C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi

    C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替 ...

  8. 模块:js实现一个倒计时功能

    1.给显示内容加样式 <style> #p1{font-size: large; color: red;} </style> 2.客户端页面 <div id=" ...

  9. js实现是倒计时功能

    工作中经常用到倒计时的功能,最近在整理之前做的项目的时候,发现自己写过一个倒计时的功能的效果,这里和大家分享下!实现这个功能是用原生js写的,不需要加载额外的库文件!功能比较简单,但是可以在此基础上扩 ...

随机推荐

  1. 【操作系统之九】Linux常用命令之netstat

    一.概念netstat命令用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况.netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP ...

  2. CentOS环境Tomcat配置JDK的另一种方式

    如下图catalina.sh中的描述,JAVA_HOME环境变量可以配置在CATALINA_BASE/bin/目录下的setenv.sh文件中(默认这个文件是不存在的) 创建文件setenv.sh,在 ...

  3. .net core中使用efcore

    官网:https://docs.microsoft.com/zh-cn/aspnet/core/data/ef-mvc/intro?view=aspnetcore-2.2#register-the-s ...

  4. MD5加盐与安全

    PHP开发者对md5()这个函数是熟悉不过了,很多开发者都使用md5('abc123')对用户密码进行加密处理,这样做没有错,但是安全性还是很低的,因为很多网站的用户数据都是用md5进行加密处理的,所 ...

  5. mysql密码中有特殊字符&在命令行下登录

    在服务器上,通常为了快速登录数据库,我们会使用mysql -hhost -uusername -ppassword db的方式登录数据库,如果密码中没有特殊字符&,会直接进入数据库sql命令行 ...

  6. SpringBoot 基础(二)

    目录 SpringBoot基础(二) 一.操作数据库 1. SpringBootJdbc 2. SpringBoot 整合 Mybatis 3. SpringBott 使用JPA 二.使用 Thyme ...

  7. python面试导航

    python面试题库 python基础 等待更新中 函数 等待更新中 面向对象 等待更新中 高级编程 等待更新中 数据库 等待更新中 前端&django 等待更新中 crm 等待更新中 drf ...

  8. 什么是 Shell?

    简单来说“Shell编程就是对一堆Linux命令的逻辑化处理”. Shell 编程的 Hello World 学习任何一门编程语言第一件事就是输出HelloWord了!下面我会从新建文件到shell代 ...

  9. HTML+CSS综合练习

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. C++之拷贝控制 (Copy Control)

    只有2种成员 值成员: 指针成员: 依实现可分为raw pointer / shared_ptr; 现在,仅考虑第③种:资源对象共享 角度来考虑拷贝控制 类的两种语义:值语义.似指针 编译器提供的de ...