时间差计算:

-(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. 实现LAMP

    实现LAMP 1.LAMP工作原理 LAMP是一个强大的Web应用程序平台,其中L是指linux系统:A是指apache也就是http;M一般是mysql/mariadb数据库;P一般是php, pe ...

  2. canvas图表详解系列(4):动态散点图

    本章建议学习时间4小时 学习方式:详细阅读,并手动实现相关代码(如果没有canvas基础,需要先学习前面的canvas基础笔记) 学习目标:此教程将教会大家如何使用canvas绘制各种图表,详细分解步 ...

  3. visio流程图软件

    microsoft visio 2013 64位 链接:http://pan.baidu.com/s/1bnjWa1T 密码:9ylc 标准图表 使用现有的数据,您可以生成许多种类的 Visio 标准 ...

  4. ROS Indigo在ubuntu1404上的安装方法

    安装配置方法参照  http://wiki.ros.org/indigo/Installation/Ubuntu 以下操作需要保证虚拟机能够正常连接网络. 1.更换源镜像: 将源设置为国内源,我选择的 ...

  5. angular.js基础

    内置指令 所有的内置指令的前缀都为ng,不建议自定义指令使用该前缀,以免冲突.首先从一些常见的内置指令开始.先列出一些关键的内置指令,顺便简单说说作用域的问题. ng-model 将表单控件和当前作用 ...

  6. 树莓派.安装Samba环境

    适用于树莓派3 树莓派装好系统后, 为了方便传文件到树莓派, 建议使用Samba这类文件夹级别的应用, 比ftp方便多了 如果你想把树莓派变成Nas, Samba也是不可或缺的应用 通过samba服务 ...

  7. LeetCode 1. Two Sum (两数之和)

    Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...

  8. linux系统莫名被黑的诡异经历

    2017年10月28日,ssh登录本地虚拟机之后发现主机名被改成了HUAIWEI_P10. 我一个同事用的此款手机,起初怀疑是他,没放心上. 今天(10月30)发现自己ssh登录不上了.恼火了办公室开 ...

  9. JS实现移动端购物车左滑删除功能

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...

  10. javascript 之执行环境-08

    概念 执行环境(Execution context,简称EC)或执行上下文对象(后面统一用执行上下文表示),它定义了变量或者函数有权访问的其他数据,决定了他们各自的行为.是不是有点不好理解,那我先简单 ...