活动倒计时,可同步服务器时间,倒计时格式随意设置

使用说明

    /*
#活动倒计时,可同步服务器时间
startTime:起始时间
endTime:结束时间
format_str:字符模板
speed:倒计时执行速度
callback:倒计时结束回调
$('.xxx').countDown_str({
startTime:'2018-09-28 11:09:00',
endTime: '2018-09-29 11:09:00',
format_str: '<span class="dd">{d}</span><span class="hh">{h}</span><span class="mm">{m}</span><span class="ss">{s}</span><span class="hs">{hs}</span>'
});
//字符模板详细说明
{d}天数
{h}小时
{m}分钟
{s}秒
{hs}毫秒
*/

  

  

插件代码

     $.fn.countDown_str = function (options) {
var defaults = {
startTime: '2018-09-28 11:09:00',
endTime: '2018-09-29 11:09:00',
speed: 1000,
format_str: '<span class="dd">{d}</span><span class="hh">{h}</span><span class="mm">{m}</span><span class="ss">{s}</span><span class="hs">{hs}</span>',
callback: function () { }
}
var opt = $.extend({}, defaults, options); return this.each(function () {
var that = this,
timer = ''; function init() {
var nowTimeStamp = new Date().getTime();//服务器的开始时间
var nowTimeStamp_server = new Date(opt.startTime).getTime();
this.totalTime = nowTimeStamp - nowTimeStamp_server;//服务器与本地时间差
} init.prototype.format = function (str, args) {
var result = str;
if (arguments.length > 0) {
if (arguments.length == 2 && typeof (args) == "object") {
for (var key in args) {
if (args[key] != undefined) {
var reg = new RegExp("({" + key + "})", "g");
result = result.replace(reg, args[key]);
}
}
}
}
return result;
}; init.prototype.outputTime = function () {
var date = this.date,
endTime = opt.endTime,
format_str = opt.format_str;
var nowTimeStamp = new Date().getTime();
var endTimeStamp = new Date(endTime).getTime();
var surplusTime = endTimeStamp - nowTimeStamp + this.totalTime;
var d = parseInt((surplusTime / (1000 * 60 * 60 * 24)));
var _d = d < 10 ? '0' + d : d;
var h = parseInt((surplusTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); //时
var _h = h < 10 ? '0' + h : h;
var m = parseInt((surplusTime % (1000 * 60 * 60)) / (1000 * 60)); //分
var _m = m < 10 ? '0' + m : m;
var s = ((surplusTime % (1000 * 60)) / 1000).toString(); //秒
var s1 = s.toString().split('.')[0]; //秒
var _s1 = s1 < 10 ? '0' + s1 : s1;
var _s3 = (s - s1).toFixed(3).toString().substring(2);
if (surplusTime > 0) {
format_str = init.format(format_str, {
d: _d,
h: _h,
m: _m,
s: _s1,
hs: _s3
});
} else {
format_str = init.format(format_str, {
d: '00',
h: '00',
m: '00',
s: '00',
hs: '000'
});
clearInterval(timer);
//定时器结束灰调
if (typeof opt.callback == 'function') {
opt.callback();
}
}
$(that).html(format_str); }
var init = new init();
init.outputTime();
timer = setInterval(function () {
init.outputTime();
}, opt.speed); });
}

  

[Jquery 插件]活动倒计时,可同步服务器时间,倒计时格式随意设置的更多相关文章

  1. javascript小技巧:同步服务器时间、同步倒计时

    之前在网上看到有人提问,如何在页面上同步显示服务器的时间,其实实现方法有几种,可能一般人立马就想到可以使用Ajax每隔一秒去请求服务器,然后将服务器获取到时间显示在页面上,这样虽然能够实现,但存在一个 ...

  2. 【原创】jQuery插件 - Booklet翻书特效教程(一) 一般设置

    jQuery插件 - Booklet翻书特效教程(一) 一般设置 本文由五月雨恋提供,转载请注明出处. 一.宽高(width/height) 1.自定义大小 $(function(){ // 自定义页 ...

  3. JS根据服务器时间倒计时

    原文链接:http://caibaojian.com/daojishi-2.html //获取服务器时间 function getSevertime(){ var xmlHttp = new XMLH ...

  4. Linux 自动同步服务器时间

    200 ? "200px" : this.width)!important;} --> 介绍 Linux服务器运行久时,系统时间就会存在一定的误差,本篇文章就来介绍怎样使服务 ...

  5. linux设置自动同步服务器时间

    最近遇到一个问题,由于两台服务器时间的问题,经常导致用户登录由于时间差问题而报错,再三百度,最后整理了一下修改linux定时同步的操作(本方法适用于有自己时间服务器,没有的只限于借鉴) 首先确认,我们 ...

  6. centos自动同步服务器时间

    原文:https://my.oschina.net/yysue/blog/1628733 1.安装ntpdate yum install ntpdate -y 2.测试是否正常 ntpdate cn. ...

  7. linux通过ntpd同步服务器时间,

    ntpd得rpm包下载地址:https://pkgs.org/download/ntp 比如我得服务器版本是centos7 x86的,那选择我点击的这一个: 下拉到最下面就有安装包下载了,我选择的是二 ...

  8. html+js 在页面同步服务器时间

    将以下的代码  放置html页面中! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  9. 超炫的时间轴jquery插件Timeline Portfolio

    Timeline Portfolio是一款按时间顺序专业显示事件的jquery时间轴插件,可以根据时间的先后嵌入各种媒体包括微博,视频和地图等.这个展现的模式非常适合设计师的作品集和个人简历的展示.T ...

随机推荐

  1. etcd集群安装部署

    1. 集群架构 由于我们只有两个机房,所以选择的是以上图中所示的数据同步方案, 通过做镜像的方式保证两个集群的数据实时同步. 整体架构如上图所示, 整个全局元数据中心包括两套集群,廊坊集群和马驹桥集群 ...

  2. type属性对jq-post在ie、chrome、ff的兼容

    w http://stackoverflow.com/questions/8834635/post-not-working-in-firefox

  3. SOE不能进入断点调试

    一.前言 任何程序开发,如果不能进入断点调试,是非常的痛苦的. 如果有过SOE开发经验的人都知道,SOE开发过程中调试是非常麻烦的.任何在SOE开发模板中的修改都需要重新编译工程,重新生成.soe 文 ...

  4. Windows Server 2016 下执行定时任务(英文系统)

    Step1. 找到“控制面板(Control Panel)” 打开 “管理工具(Administrative Tools)” Step2. 打开“任务计划(Task Schedule)” Step3. ...

  5. 【我的Android进阶之旅】解决MediaPlayer播放音乐的时候报错: Should have subtitle controller already set

    一错误描述 二错误解决 解决方法一 解决方法二 一.错误描述 刚用MediaPlayer播放Music的时候,看到Log打印台总是会打印一条错误日志,MediaPlayer: Should have ...

  6. 【我的Android进阶之旅】Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法

    错误描述 今天使用第三方的so库时候,调用JNI方法时出现了错误.报错如下所示: 11-01 16:39:20.979 4669-4669/com.netease.xtc.cloudmusic E/a ...

  7. Nginx+Springboot+Vue 前后端分离 解决跨域问题

    1:前端vue 写完 打包 npm run build prod 2: 后端api 写完打包 springboot mvn package -Dmaven.test.skip=true 3: ngin ...

  8. Android图片加载框架之Picasso

    相信做Android开发的对Square公司一定不会陌生,大名鼎鼎的网络请求框架Retrofit就来源于它,今天学习的是该公司出品的图片加载框架Picasso. 项目地址 https://github ...

  9. App doesn't auto-start an app when booting the device in Android

    From Android 3.1, newly installed apps are always put into a "stopped" state and the only ...

  10. django 中的视图(Views)

    Views Django中views里面的代码就是一个一个函数逻辑, 处理客户端(浏览器)发送的HTTPRequest, 然后返回HTTPResponse, http请求中产生两个核心对象: http ...