页面代码

  1. <div class="time " class="" id="onBidtime125" pid="125">
  2. <div class="timeicon" ></div>
  3. 距离结束:<span class="day">-</span><span class="hour">-</span> 小时 <span class="minute">-</span><span class="second">-</span>
  4. <script type="text/javascript">
  5. $(function(){
  6. endDown2("1472287680","1470660651","#onBidtime125","#onBidtime125 .day","#onBidtime125 .hour","#onBidtime125 .minute","#onBidtime125 .second");
  7. });
  8. </script>
  9. </div>

  JS代码

  1. / 结束倒计时
  2. //etime 结束时间
  3. //ntime 服务器时间
  4. function endDown2(etime,ntime,boxobj,day_elem,hour_elem,minute_elem,second_elem)
  5. var now_time = new Date(ntime*1000);
  6. var end_time = new Date(etime*1000);
  7. var sys_second = (end_time-now_time)/1000;
  8. var timer = setInterval(function(){
  9. if (sys_second > 0) {
  10. sys_second -= 1;
  11. var day = Math.floor((sys_second / 3600) / 24);
  12. var hour = Math.floor((sys_second / 3600) % 24);
  13. var minute = Math.floor((sys_second / 60) % 60);
  14. var second = Math.floor(sys_second % 60);
  15. day_elem && $(day_elem).text(day);//计算天
  16. $(hour_elem).text(hour<10?"0"+hour:hour);//计算小时
  17. $(minute_elem).text(minute<10?"0"+minute:minute);//计算分
  18. $(second_elem).text(second<10?"0"+second:second);// 计算秒
  19. } else {
  20. clearInterval(timer);
  21. $('#bidTimeStatus').remove();
  22. $(boxobj).html('');
  23. $(boxobj).addClass('end');
  24. }
  25. }, 1000);
  26. }
  27. // 开始倒计时
  28. function startDown2(etime,ntime,boxobj,day_elem,hour_elem,minute_elem,second_elem){
  29. var now_time = new Date(ntime*1000);
  30. var end_time = new Date(etime*1000);
  31. var sys_second = (end_time-now_time)/1000;
  32. var timer = setInterval(function(){
  33. if (sys_second > 0) {
  34. sys_second -= 1;
  35. var day = Math.floor((sys_second / 3600) / 24);
  36. var hour = Math.floor((sys_second / 3600) % 24);
  37. var minute = Math.floor((sys_second / 60) % 60);
  38. var second = Math.floor(sys_second % 60);
  39. day_elem && $(day_elem).text(day);//计算天
  40. $(hour_elem).text(hour<10?"0"+hour:hour);//计算小时
  41. $(minute_elem).text(minute<10?"0"+minute:minute);//计算分
  42. $(second_elem).text(second<10?"0"+second:second);// 计算秒
  43. } else {
  44. $('.noStartBidTbox .th').html('拍卖已开始');
  45. $(boxobj).html('');
  46. $(boxobj).addClass('into');
  47. }
  48. }, 1000);
  49. }

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

  1. function endDown(etime,ntime,boxobj,day_elem,hour_elem,minute_elem,second_elem,msec_elem){
  2. var now_time = new Date(ntime*1000);
  3. var end_time = new Date(etime*1000);
  4. var native_time = new Date().getTime(); //本地时间
  5. var now_cha = now_time - native_time; //服务器和本地时间差
  6. var native_end_time = end_time - now_cha; //本地结束时间
  7. var sys_second = 0;
  8. var bidpids = $(boxobj).attr('pid');
  9. if(bidpids){
  10. var bidpid = bidpids;
  11. }
  12. endDowntimer = setInterval(function(){
  13. // 检查本地时间是否更改
  14. if(Math.abs(native_time - new Date().getTime())>1000){
  15. clearInterval(endDowntimer);
  16. $.post(ajaxGetTime, {'pid':bidpid},function(data){
  17. endDown(data.endtime,data.nowtime,boxobj,day_elem,hour_elem,minute_elem,second_elem,msec_elem);
  18. });
  19. }
  20. sys_second = (native_end_time - new Date().getTime())/100; //本地结束剩余时间
  21. if (sys_second > 0) {
  22. sys_second -= 1;
  23. var day = Math.floor((sys_second / 36000) / 24);
  24. var hour = Math.floor((sys_second / 36000) % 24);
  25. var minute = Math.floor((sys_second / 600) % 60);
  26. var second = Math.floor((sys_second/10) % 60);
  27. var msec = Math.floor(sys_second % 10); //毫秒
  28. day_elem && $(day_elem).text(day);//计算天
  29. $(hour_elem).text(hour<10?"0"+hour:hour);//计算小时
  30. $(minute_elem).text(minute<10?"0"+minute:minute);//计算分
  31. $(second_elem).text(second<10?"0"+second:second);// 计算秒
  32. $(msec_elem).text(msec);// 计算秒的1/10
  33. native_time = new Date().getTime();
  34. } else {
  35. clearInterval(endDowntimer);
  36. // 本地时间结束提交服务器验证是否结束
  37. $.post(ajaxCheckSucc, {'pid':bidpid},function(data){
  38. if(data.status==0){
  39. // startDown(data.end_time,data.now_time,".noStartTime",".noStartTime .day",".noStartTime .hour",".noStartTime .minute",".noStartTime .second",".noStartTime .msec");
  40. endDown(data.end_time,data.now_time,boxobj,day_elem,hour_elem,minute_elem,second_elem,msec_elem);
  41. }else{
  42. if(data.status==1){
  43. $('#bidTimeStatus').remove();
  44. $(boxobj).html('');
  45. $(boxobj).addClass('end');
  46. var user = data.nickname;
  47. if(data.uid==userid){user ='您';}
  48. var msg = '恭喜'+user+'以'+data.money+'元,拍到《'+data.pname+'》';
  49. }else if (data.status==2){
  50. var msg = '《'+data.pname+'》未达到保留价,流拍!'
  51. }
  52. popup.success(msg,'结束提示',function(action){
  53. //success 返回两个 action 值,分别是 'ok' 和 'close'。
  54. if(action == 'ok'){
  55. window.top.location.reload();
  56. }
  57. if(action == 'close'){
  58. window.top.location.reload();
  59. }
  60. });
  61. }
  62. });
  63. }
  64. }, 100);
  65. }
  66. // 开始时间倒计时
  67. function startDown(etime,ntime,boxobj,day_elem,hour_elem,minute_elem,second_elem,msec_elem){
  68. var now_time = new Date(ntime*1000);
  69. var end_time = new Date(etime*1000);
  70. var native_time = new Date().getTime(); //本地时间
  71. var now_cha = now_time - native_time; //服务器和本地时间差
  72. var native_end_time = end_time - now_cha; //本地结束时间
  73. var sys_second = 0;
  74. var bidpids = $(boxobj).attr('pid');
  75. if(bidpids){
  76. var bidpid = bidpids;
  77. }
  78. startDowntimer = setInterval(function(){
  79. if(Math.abs(native_time - new Date().getTime())>1000){
  80. clearInterval(startDowntimer);
  81. $.post(ajaxGetTime, {'pid':bidpid},function(data){
  82. startDown(data.endtime,data.nowtime,boxobj,day_elem,hour_elem,minute_elem,second_elem,msec_elem);
  83. });
  84. }
  85. sys_second = (native_end_time - new Date().getTime())/100; //本地结束剩余时间
  86. if (sys_second > 0) {
  87. sys_second -= 1;
  88. var day = Math.floor((sys_second / 36000) / 24);
  89. var hour = Math.floor((sys_second / 36000) % 24);
  90. var minute = Math.floor((sys_second / 600) % 60);
  91. var second = Math.floor((sys_second/10) % 60);
  92. var msec = Math.floor(sys_second % 10); //毫秒
  93. day_elem && $(day_elem).text(day);//计算天
  94. $(hour_elem).text(hour<10?"0"+hour:hour);//计算小时
  95. $(minute_elem).text(minute<10?"0"+minute:minute);//计算分
  96. $(second_elem).text(second<10?"0"+second:second);// 计算秒
  97. $(msec_elem).text(msec);// 计算秒的1/10
  98. native_time = new Date().getTime();
  99. } else {
  100. $('.noStartBidTbox .th').html('拍卖已开始');
  101. $(boxobj).html('');
  102. $(boxobj).addClass('into');
  103. window.top.location.reload();
  104. }
  105. }, 100);
  106. }

  

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. Lab2:物理内存管理

    前言 现在内存管理的方法都是非连续内存管理,也就是结合段机制和分页机制 段机制 段地址空间 进程的段地址空间由多个段组成,比如代码段.堆栈段和符号表段等等 段对应一个连续的内存"块" ...

  2. gcc命令详解

    gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点.目前,GCC可以用来编译C/C++.FORTRAN.JAVA.OBJC. ...

  3. vim查找

    vim编辑器查找的时候,先 esc,然后 /要查找的内容,按下enter,查找下一个使用 n. 如果向向上查找使用 ?要查找的内容,按下enter,查找上一个使用n

  4. Functional-Light-JS 摘录笔记(1)

    function foo(...args) { console.log( args[3] ); } var arr = [ 1, 2, 3, 4, 5 ]; foo( ...arr ); Think ...

  5. C语言有关文件编辑的函数

    fopen()函数 函数作用 用来打开一个文件 头文件 #include <stdio.h> 用法 FILE *fopen(char *filename, *type); TYPES &q ...

  6. Python 3 + Selenium 3 简单入门学习示例 126邮箱登录

    这是一个很多基础演示的书上的例子,但是一般按照这些书上的代码可能都不能成功登录.也许是网易修改了126的页面导致的吧,下面给出最新的能够work的版本 from selenium import web ...

  7. [转] js async await 终极异步解决方案

    阅读目录 回顾 Promise async await 字面理解 async.await 如何执行 await 操作符 总结 既然有了promise 为什么还要有async await ? 当然是pr ...

  8. qbittorrent搜索插件合集

    qbittorrent搜索 qbittorrent搜索一个很有特色的功能: 这里收集整理了一些公开网站的插件(Plugins for Public sites),并连 源py文件一起分享. qbitt ...

  9. Prometheus监控学习笔记之容器监控Grafana模块

    0x00 概述 Grafana 是一个开源的,可以用于大规模指标数据的可视化项目,甚至还能对指标进行报警.基于友好的 Apache License 2.0 开源协议,目前是prometheus监控展示 ...

  10. ASP.NET SignalR 系列(七)之服务端触发推送

    前面几章讲的都是从客户端触发信息推送的,但在实际项目中,很多信息可能是由系统服务端推送的,下面2图分别展示两种通道 客户端触发推送 服务端推送 下面我们就重点介绍下服务端如何调用集线器的对象进行推送 ...