//可自由选择精确度

如:签到时间:2018-11-07 11:00:00

签退时间:2018-11-07 10:59:59

//判断时间先后

//统一格式

var a = $("#fdtmInDate").val();
var aa = a.split('T');
if (aa.length == 2) {
$("#fdtmInDate").val(aa[0] + " " + aa[1]);
}
a = $("#fdtmOffDate").val();
aa = a.split('T');
if (aa.length == 2) {
$("#fdtmOffDate").val(aa[0] + " " + aa[1]);
}

//判断天
var sdays = GetDateDiff1($("#fdtmInDate").val(), $("#fdtmOffDate").val(), "day");//天    执行到 这里sdays=0
if (sdays < 0) {
$.ligerDialog.warning("签到时间不能大于签退时间!");     这个是框架的弹出框,用alter();是一样的
$("#fdtmEndDate").focus();
return false;
} else {

//判断小时

sdays = GetDateDiff1($("#fdtmInDate").val(), $("#fdtmOffDate").val(), "hour");//小时     这里sdays=0

if (sdays < 0) {
$.ligerDialog.warning("签到时间不能大于签退时间!");
$("#fdtmEndDate").focus();
return false;
} else {

//判断分钟

sdays = GetDateDiff1($("#fdtmInDate").val(), $("#fdtmOffDate").val(), "minute");//分钟   这里sdays=0

if (sdays < 0) {
$.ligerDialog.warning("签到时间不能大于签退时间!");
$("#fdtmEndDate").focus();
return false;
} else {

//判断秒

sdays = GetDateDiff1($("#fdtmInDate").val(), $("#fdtmOffDate").val(), "second");//秒    这里sdays= - 1

if (sdays < 0) {
$.ligerDialog.warning("签到时间不能大于签退时间!");       //执行这里
$("#fdtmEndDate").focus();
return false;
}
}
}
}

//被调用的方法

function GetDateDiff1(startTime, endTime, diffType) {
//alert(endTime);
//将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式
startTime = startTime.replace(/\-/g, "/");
endTime = endTime.replace(/\-/g, "/");
//将计算间隔类性字符转换为小写
diffType = diffType.toLowerCase();

var sTime = new Date(startTime); //开始时间
var eTime = new Date(endTime); //结束时间
//作为除数的数字
var timeType = 1;
switch (diffType) {
case "second":
timeType = 1000;
break;
case "minute":
timeType = 1000 * 60;
break;
case "hour":
timeType = 1000 * 3600;
break;
case "day":
timeType = 1000 * 3600 * 24;
break;
default:
break;
}
return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(timeType));
}

JS 判断两个时间的大小(可自由选择精确度:天,小时,分钟,秒)的更多相关文章

  1. 用JS判断两个数字的大小

    js中的var定义的变量默认是字符串,如果单纯的比较字符串的话,会出现错误,需要先转化为int类型在做比较. [备注:110和18在你写的程序中是18大的,因为 这两个数都是字符串,而1和1相等之后比 ...

  2. JS判断两个数字的大小

    javascript中定义的var类型是弱类型,默认是String类型,在比较两个数字大小的时候默认比较的是两个字符串,比如,在比较10和2时,按数字做比较10是比2大,可是按默认的字符串比较时,第一 ...

  3. js 判断两个时间相差的天数

    judgeDay(sDate1, sDate2) { const sDate1 = `${new Date(sDate1).getFullYear()}-${new Date(sDate1).getM ...

  4. js比较两个时间的大小

    function checkdate(s,e){ //得到日期值并转化成日期格式,replace(/-/g, "//")是根据验证表达式把日期转化成长日期格式,这样再进行判断就好判 ...

  5. js对比两个时间的大小

    /** * 时间对比 开始=结束返回0;开始>结束返回-1;开始<结束返回1 */ function dateComparison(date1,date2){ var start =new ...

  6. PHP中比较两个时间的大小与日期的差值

    在这里我们全用到时间戳 mktime(hour,minute,second,month,day,year,[is_dst])     其参数可以从右向左省略,任何省略的参数都会被设置成本地日期和时间的 ...

  7. PHP用strtotime()函数比较两个时间的大小实例详解

    在PHP开发中,我们经常会对两个时间的大小进行判断,但是,在PHP中,两个时间是不可以直接进行比较,因为时间是由年.月.日.时.分.秒组成的,所以,如果需要将两个时间进行比较的话,我们首先要做的就是将 ...

  8. java 判断两个时间相差的天数

    1.实现目标 输入:两个日期 输出:两个日期相差的天数 2.代码实现 方法1: 通过Calendar类的日期比较.注意:这里需要考虑一下: 日期是跨年份的,如一个是2012年,一个是2015年的   ...

  9. Java_Date_01_判断两个时间相差的天数

    二.参考资料 1.java 判断两个时间相差的天数 2.java计算两个日期之间相差天数和相隔天数详解

随机推荐

  1. mysql批量查询

    一般批量查询的时候都是in关键字,但是在数据量大的时候,效率低下. 这个时候我们就可以考虑使用union . xml 核心代码 <select id="selectList" ...

  2. C#调用VlcControl做一个播放器

    开发环境: Visual Studio 2015 .Net Framework 4.5 1.新建一个Windows窗体应用程序 修改框架为.Net Framework 4.5 2.管理NuGet包 下 ...

  3. etcd 启动错误

    Apr 26 16:17:25 ceph-0 etcd: f281dc69fb4dd3d8 became candidate at term 3574Apr 26 16:17:25 ceph-0 et ...

  4. Go 基准测试

        文章转载地址:https://www.flysnow.org/2017/05/21/go-in-action-go-benchmark-test.html 什么是基准测试?      基准测试 ...

  5. CentOS设置服务开机启动的两种方法

    一.通过服务的方式设置自启动 1.  在/etc/init.d 下建立相关程序的启动脚本 2.  chkconfig --add mysqld(添加服务到chkconfig列表中) chkconfig ...

  6. python_requests官方文档中文版

    http://cn.python-requests.org/zh_CN/latest/

  7. `vue-router`的`History`模式下的项目发布

    背景 脚手架版本号:vue cli 3.x 项目路由:vue-router的History模式 原理:url路由处理逻辑从后端转移到前端. 参考:https://developer.mozilla.o ...

  8. IOS 模块并且发布到NPM

      注释:导入出错 请使用这个 #import <React/RCTBridge.h>   参考文档:http://www.liuchungui.com/blog/2016/05/02/r ...

  9. HBase详解

    1.   hbase简介 1.1.  什么是hbase HBASE是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群. H ...

  10. vivo 1805的usb调试模式在哪里,开启vivo 1805usb调试模式的流程

    经常我们使用安卓手机通过数据线连接上PC的时候,如果手机没有开启usb调试模式,PC则没办法成功识别我们的手机,部分软件也没办法正常使用,此情况我们需要找方法将手机的usb调试模式打开,下面我们讲解v ...