时间差计算:

-(function($){
var caculation = function(gap){
var minutes = 1000 * 60
var hours = minutes * 60
var days = hours * 24
var years = days * 365
if(gap/years >= 1){
return parseInt(gap/years)+'年';
}else if(gap/days >= 30){
return parseInt(gap/days/30)+'个月'
}else if(gap/hours >= 24){
return parseInt(gap/hours/24)+'天'
}else if(gap/minutes >=60){
var num = gap/minutes/60;
var intNum = parseInt(gap/minutes/60);
return intNum+'小时'+parseInt((num.toFixed(4)-intNum)*60)+'分钟'
}else{
return parseInt(gap/minutes)+'分钟'
}
}
$.extend({
nowToTime:function(time){
var theTime = Date.parse(time .replace(/-/g,"/"));
var curDate=new Date().valueOf();//当前时间的时间戳
if(theTime <=curDate){
alert("请选择大于今天的时间!");
}else{
var gap = theTime - curDate;
return caculation(gap)
}
},
timeToNow:function(time){
var theTime = Date.parse(time .replace(/-/g,"/"));
var curDate=new Date().valueOf();
if(theTime <=curDate){
var gap = curDate - theTime;
return caculation(gap)
}else{
alert("请选择小于今天的时间!");
}
},
timeToTime:function(timeOne,timeTwo){
if(timeOne == undefined && timeTwo == undefined){
alert('请输入日期');
return false;
}
var timeOne = timeOne == undefined ?
new Date().valueOf():
Date.parse(timeOne .replace(/-/g,"/"));
var timeTwo = timeTwo == undefined ?
new Date().valueOf():
Date.parse(timeTwo.replace(/-/g,"/"));
var gap = timeOne > timeTwo?
timeOne-timeTwo:
timeTwo-timeOne;
return caculation(gap) }
})
})(jQuery);
console.log($.nowToTime('2017-7-16 17:51:34')+'后');
console.log($.timeToNow('2017-07-15 18:01:23')+'前');
console.log($.timeToTime('2017-07-15 18:01:23','2018-06-16 19:02:23'))

倒计时:

;(function() {

    var Grewer = {
init:function(option,obj){
var trigger = option.trigger || 's',
limit = (option.limit === 'over') ? '1' : (option.limit === 'inadequate') ? '-1' : '0',
time = option.time;
console.log(trigger, limit, time) var now = (new Date()).valueOf();
var gap = now - (new Date(time)).valueOf(); switch (limit) {
case '0':
this.addHtml(obj, gap,trigger,limit);
break;
case '1':
if (gap < 0) {
this.addHtml(obj, gap, trigger,limit); } else {
console.error('未超过当前时间')
alert('未超过当前时间')
}
break;
case '-1':
if (gap >= 0) {
this.addHtml(obj, gap,trigger, limit); } else {
console.error('超过了当前时间')
alert('超过了当前时间');
}
}
},
addHtml:function(obj,gap,trigger){
this.caculation(gap) var html = (trigger === 's') ? '<div class="GrewerTime"><span class="hours">' + this.intHours + '</span>小时<span class="minutes">' + this.intMinutes + '</span>分<span class="second">' + this.intSeconds + '</span>秒</div>' :
'<div class="GrewerTime"><span class="hours">' + this.intHours + '</span>小时<span class="minutes">' + this.intMinutes+ '</span>分</div>'; obj.append(html); (trigger === 's') ? this.addTrigger(obj) : this.addHourTrigger(obj);
},
caculation:function(gap){
gap = Math.abs(gap);
var minutes = 1000 * 60,
hours = minutes * 60,
days = hours * 24 this.intHours = (gap / hours) | 0;
this.intMinutes = ((gap - this.intHours * hours) / minutes) | 0;
this.intSeconds = ((gap - this.intMinutes * minutes - this.intHours * hours) / 1000) | 0;
},
addTrigger:function(obj){
setTimeout(function() {
var hours = obj.find('.hours').text(),
minutes = obj.find('.minutes').text(),
second = obj.find('.second').text(); if (second <= 0) {
if (minutes <= 0) {
if (hours <= 0) {
return false;
}
this.minus(obj.find('.hours'));
obj.find('.second').text(59);
obj.find('.minutes').text(59);
} else {
this.minus(obj.find('.minutes'));
obj.find('.second').text(59);
}
return this.addTrigger(obj);
} this.minus(obj.find('.second'));
this.addTrigger(obj); }.bind(this), 1000);
},
addHourTrigger:function(obj){ setTimeout(function() {
var hours = obj.find('.hours').text(),
minutes = obj.find('.minutes').text() if (minutes <= 0) {
if (hours <= 0) {
return false;
}
this.minus(obj.find('.hours'));
obj.find('.minutes').text(59);
return this.addHourTrigger(obj);
} this.minus(obj.find('.minutes'));
this.addHourTrigger(obj);
; }.bind(this), 1000*60);
},
minus:function(obj){
var bar = (obj.text() | 0) - 1
obj.text(bar);
return bar;
}
} $.fn.extend({
timeTrigger: function(option) {
//1 this 是单个
//option参数
// trigger 触发时分秒; s,m
// time 时间;
// limit (over inadequate) 是否接受某个参数必须大于或小于当前时间
// (0=underfined:没有限制)(1=over:大于当前时间)(-1=inadequate:小于当前时间);
if (option.time === void 0) {
alert('请输入时间');
return false;
}
var G = Object.create(Grewer);
G.init(option,this); }
}) }()); $('#time').timeTrigger({
time: '2018-09-9 15:12:00',
trigger:'s',
});

jq 时间计算的更多相关文章

  1. C# 时间计算 今天、昨天、前天、明天 一个月的开始日期与结束日期

    C# 时间计算    今天.昨天.前天.明天   class Program    {        static void Main(string[] args)        {          ...

  2. ac命令根据/var/log/wtmp文件登录退出时间计算用户连接时间

    ac命令根据/var/log/wtmp文件登录退出时间计算用户连接时间

  3. Delphi中获取Unix时间戳及注意事项(c语言中time()是按格林威治时间计算的,比北京时间多了8小时)

    uses DateUtils;DateTimeToUnix(Now) 可以转换到unix时间,但是注意的是,它得到的时间比c语言中time()得到的时间大了8*60*60这是因为Now是当前时区的时间 ...

  4. STM32的定时器定时时间计算(计数时间和中断定时时间)

    时基单元 可编程高级控制定时器的主要部分是一个16位计数器和与其相关的自动装载寄存器.这个计数器可以向上计数.向下计数或者向上向下双向计数.此计数器时钟由预分频器分频得到. 计数器.自动装载寄存器和预 ...

  5. c++时间计算模块

    c++时间计算模块 可用于计算代码运行耗时.计算代码运行时间线(比如处理与运行时间相关函数). 该模块从实际项目中产生,使用方式仁者见仁智者见智,设计思想可供参考. 源码: //author: cai ...

  6. Mysql学习笔记—时间计算、年份差、月份差、天数差(转载)

    1.获取当前日期 SELECT NOW(),CURDATE(),CURTIME(); 结果类似: 2. 获取前一天 DAY); 当前日期2018-09-17,结果: 3. 获取后一天 DAY); 当前 ...

  7. php 当前时间计算操作

    首先要设置时间为中国时区 date_default_timezone_set('PRC'); 对于获取当前时间戳后的各种时间计算 数据库保存最好用时间戳 当前时间time() 上一天 echo dat ...

  8. Executors线程池关闭时间计算

    Executors线程池关闭时间计算 学习了:http://blog.csdn.net/wo541075754/article/details/51564359 https://www.cnblogs ...

  9. C# TimeSpan 时间计算

    原文:C# TimeSpan 时间计算 本文告诉大家简单的方法进行时间计算. 实际上使用 TimeSpan 可以做到让代码比较好懂,而代码很简单. 例如我使用下面的代码表示 5 秒 const int ...

随机推荐

  1. 使用binlog2sql做数据恢复的简单示例

    有时我们会遇到操作人员误删或者误更新数据的情况,这时我们迫切希望把原来的数据还原回来,今天我们介绍一个简单的工具来方便的实现此功能. 前提条件 在实现数据恢复之前,需要我们的MySQL满足以下配置条件 ...

  2. 2017值得一瞥的JavaScript相关技术趋势

    2017值得一瞥的JavaScript相关技术趋势从属于笔者的Web 前端入门与工程实践,推荐阅读2016-我的前端之路:工具化与工程化获得更多关于2016年前端总结.本文主要内容翻译自,笔者对于每个 ...

  3. JavaScript责任链模式

    介绍 责任链模式(Chain of responsibility)是使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系.将对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理 ...

  4. 3des用法示例,已测试

    using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security ...

  5. 我推荐的 Java Web 学习路线

    晚上再 V2 的 Java 的节点看到有人问 Java Web 书籍推荐.我这半年多的时间,也从别的方向开始转向 Java 服务端开发,所以,我来说下我的学习路线,帮助有需要的朋友把半只脚踏进 Spr ...

  6. Excel 查找某列中的数据在另一列是否存在及输出第三例的数据

    最近在操作Excel文件数据导入数据库时,经常需要检查Excel中哪些数据数据库中已经存在,哪些不存在,然后再将不存在数据库中的Excel数据导入:在此过程中,经常需要操作Excel中的数据,所以.也 ...

  7. 安装PyQt5之后mayavi和VTK不能使用

    mayavi在显示数据的过程中需要调用PyQt4的GUI方法产生应用框架.但是新发布的PyQt5和PyQt4在很多方面都是不兼容的,这也就导致了用mayavi编写的程序运行失败.在实践之后,我的解决方 ...

  8. Paint the Grid Reloaded(缩点,DFS+BFS)

    Leo has a grid with N rows and M columns. All cells are painted with either black or white initially ...

  9. javascript中new操作符

    当代码var p= new Person("tom")执行时,其实内部做了如下几件事情: 1.创建一个空白对象(new Object()). 2.拷贝Person.prototyp ...

  10. addEventListener和attachEvent二者绑定的执行函数中的this不相同【转载】

    yuanwen http://www.jb51.net/article/32511.htm 写 addEventListener 和 attachEvent 区别的博文不少,不过大部分都把重点放置于前 ...