调用方法

var _TimeCountDown = new TimeCountDown("sttime1",{
startTime:'2016-07-30 10:07:55', //开始时间
endTime:'2016-07-30 10:08:00', //结束时间
timeCallBack:"timeOverfun", //回调函数
});

countDown.js

/**
* @author wanghaitao
* @param sttime1 id
* @param startTime 开始时间
* @param endTime 结束时间
* @param timeCallBack 回调函数
*
* var _TimeCountDown = new TimeCountDown("sttime1",{
startTime:'2016-07-30 10:07:55', //开始时间
endTime:'2016-07-30 10:08:00', //结束时间
timeCallBack:"timeOverfun", //回调函数
});
*/ (function(window,undefined){
var TimeCountDown = function(container, params){
if(!(this instanceof TimeCountDown)) return new TimeCountDown(container, params); var defaults = {
endTime:'', //title
startTime:'', //请传入ID,或DOM对象
Lid:'',
leftTitle:"倒计时:",//左侧名称
colonStat:false,//是否把小时分转换成:
timeCallBack:null //关闭执行的回调函数
}
params = params || {};
var originalParams = {};
for (var param in params) { if (typeof params[param] === 'object' && params[param] !== null && !(params[param].nodeType || params[param] === window || params[param] === document || (typeof Dom7 !== 'undefined' && params[param] instanceof Dom7) || (typeof jQuery !== 'undefined' && params[param] instanceof jQuery))) {
originalParams[param] = {};
for (var deepParam in params[param]) {
originalParams[param][deepParam] = params[param][deepParam];
}
}
else {
originalParams[param] = params[param];
}
}
for (var def in defaults) {
if (typeof params[def] === 'undefined') {
params[def] = defaults[def];
}
else if (typeof params[def] === 'object') {
for (var deepDef in defaults[def]) {
if (typeof params[def][deepDef] === 'undefined') {
params[def][deepDef] = defaults[def][deepDef];
}
}
}
}
var s = this;
// Params
s.params = params;
s.container = container;
s.currentBreakpoint = undefined;
s.calculateTime = function(){
var startTime = s.vert(this.params.startTime);
var endTime = s.vert(this.params.endTime);
var time = endTime - startTime; //时间差的毫秒数 ;
return time;
}
s.vert = function(time){
if(typeof time == "undefined" || time==""){
return false;
}
var strtime = (time).replace(/-/g,"/");
var date1 = new Date(strtime);
return parseInt(date1.getTime());
}
s.nTime = s.calculateTime();
s.countdown(); }; TimeCountDown.prototype = {
countdown:function(){
var interval = 1000; //毫秒
var time;
this.nTime = this.nTime - interval; var leave1 = this.nTime;//计算天数后剩余的毫秒数
var t = Math.floor(Math.floor((leave1/(3600*1000))/24));
var hleave = this.nTime%((24*3600*1000));
//把剩余毫秒数转换为小时
var h = Math.floor(hleave/(3600*1000)) < 10 ? "0"+ Math.floor(hleave/(3600*1000)) : Math.floor(hleave/(3600*1000));
var leave2 = this.nTime%(3600*1000); //计算小时数后剩余的毫秒数
//把转换小时之后,剩余毫秒数转换为分钟
var m = Math.floor(leave2/(60*1000)) < 10 ? "0" + Math.floor(leave2/(60*1000)) : Math.floor(leave2/(60*1000)); //把转换分钟之后,剩余毫秒数转换为秒
var leave3 = leave2%(60*1000); //计算分钟数后剩余的毫秒数
var s = Math.round(leave3/1000) < 10 ? "0" + Math.round(leave3/1000) : Math.round(leave3/1000); if(!this.params.colonStat){
if(t == 0){
time = this.params.leftTitle+"<span>" + h + "</span><label>时</label><span>" + m + "</span><label>分</label><span>" + s + "</span><label>秒<label>"; }else{ time = this.params.leftTitle+"<span>" + t + "</span><label>天</label><span>" + h + "</span><label>时</label><span>" + m + "</span><label>分</label><span>" + s + "</span><label>秒<label>";
}
}else{
time = this.params.leftTitle+"<span>" + h + "</span><label>:</label><span>" + m + "</span><label>:</label><span>" + s + "</span><label><label>";
}
var callBackTime = t+h+m+s;
document.querySelector("#"+this.container).innerHTML = time;
if(callBackTime <= 0){
eval(this.params.timeCallBack);
return false;
}
var that = this;
setTimeout(function(){
that.countdown();
},interval);
}
}
window.TimeCountDown=TimeCountDown;
})(window,undefined);

  

javascript 倒计时天、小时、分钟、描述的倒计时代码的更多相关文章

  1. JavaScript秒转换成天-小时-分钟-秒

    根据时间秒转换成天-小时-分钟-秒 // 秒转换成day.hour.minutes.seconds formatSecond(second: number) { const days = Math.f ...

  2. 使用html+css+js实现倒计时,开启你痛苦的倒计时吧

    使用html+css+js实现倒计时,开启你痛苦的倒计时吧 效果图: 这是我痛苦的倒计时,呜呜呜 好啦,再痛苦还是要分享代码,代码如下,复制即可使用: <!DOCTYPE html> &l ...

  3. android实现倒计时,最简单实现RecyclerView倒计时+SwipeRefreshLayout下拉刷新

    先上效果图: RecyclerView + SwipeRefreshLayout 实现倒计时效果 MainActivity.java package top.wintp.counttimedemo1; ...

  4. MySQL 取得小时分钟部分

    MySQL 取得小时分钟部分 SELECT `CpParkID` , DATE_FORMAT( `UPDATE_TIME` , '%H:%i' )FROM `cp_park`WHERE HOUR( ` ...

  5. 【PTA】5-2 下列程序读入时间数值,将其加1秒后输出,时间格式为:hh: mm: ss,即“小时:分钟:秒”,当小时等于24小时,置为0。

    5-2 下列程序读入时间数值,将其加1秒后输出,时间格式为:hh: mm: ss,即"小时:分钟:秒",当小时等于24小时,置为0. #include <stdio.h> ...

  6. 让wordpress分类和标签的描述支持HTML代码

    默认 WordPress 后台分类和标签的编辑页面,分类和标签的描述是不支持 HTML 代码的,我们可以通过在当前主题的 functions.php 文件添加如下代码让分类和标签的描述支持 HTML ...

  7. 通过javascript库JQuery实现页面跳转功能代码

    通过javascript库JQuery实现页面跳转功能代码的四段代码实例如下. 实例1: 1 2 3 4 $(function(){ var pn = $("#gotopagenum&quo ...

  8. JavaScript与html5写的贪吃蛇完整代码

    JavaScript与html5写的贪吃蛇完整代码 查看运行效果可访问http://www.codesocang.com/texiao/youxitexiao/2014/0402/7045.html# ...

  9. Dreamweaver CS5 CS6 代码格式化、美化插件(可同一时候格式化HTML、JavaScript、CSS )眼下最好用的代码格式化扩展

    Dreamweaver CS5 CS6 代码格式化.美化插件(可同一时候格式化HTML.JavaScript.CSS )眼下最好用的代码格式化扩展. 众所周知,Dreamweaver CS5 CS6 ...

  10. 主要看思路:区域数据去重 + JavaScript一次性展示几万条数据实例代码

    近期做1功能,Gis地图 基于百度地图api , 会遇到的问题的, 如后台接口给的数据很多,大几千上万的,如果拿了数据直接渲染dom ,这滋味爽爽的. 再遇上 客户端浏览器悲催的,这卡顿就来了... ...

随机推荐

  1. CentOS安装JDK7

    1.下载jdk-7-linux-x64.rpm(http://www.Oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-downlo ...

  2. JAVA为什么会空指针异常

    1.所谓的指针,就是java中的对象的引用.比如String s;这个s就是指针. 2.所谓的空指针,就是指针的内容为空,比如上面的s,如果令它指向null,就是空指针. 3.所谓的空指针异常,就是一 ...

  3. MySql中的时间类型datetime,timestamp,date,year比较

    MySQL日期类型.日期格式.存储空间.日期范围比较.日期类型        存储空间       日期格式                 日期范围------------ ---------   ...

  4. Asp.net Repeater控件

    Repeater控件和DataList控件,可以用来一次显示一组数据项.比如,可以用它们显示一个数据表中的所有行.     Repeater控件完全由模板驱动,提供了最大的灵活性,可以任意设置它的输出 ...

  5. 查看sqlserver默认的编码格式

    SQL语句:SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage') 936 简体中文GBK 950 繁体中文BIG ...

  6. 异步socket大并发实现

    using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Net.So ...

  7. STL删除vector或list的方法及注意的问题

    删除vector中的元素 1.删除指定的所有对象 STL中remove()只是将待删除元素之后的元素移动到vector的前端,而不是删除.若要真正移除,需要搭配使用erase().例子: vector ...

  8. InnoDB概览

    InnoDB 采用了MVCC来支持高并发,并且实现了四个标准的隔离级别.其默认级别是REPEATABLE READ(可重复读) ,并且,通过间隙锁(next-key locking)策略防止幻读的出现 ...

  9. xdebug使用说明

    常用配置 xdebug.var_display_max_children整数类型,默认值128.用于控制通过xdebug_var_dump(),var_dump()方法时显示数组中子数组的个数或对象中 ...

  10. treeview递归

    1.数据库 table A( ID int pk, Value varchar, Fid int ) A: ID   Value    Fid 1   value1     0 2   value2  ...