JS计算两个时间差的问题

news/2024/7/1 18:15:44

计算两个时间差的问题

function getDateIsMatching(){
        var pactbegindate=$("#loanbegindate").datetimebox("getValue");
        var pactenddate=$("#loanenddate").datetimebox("getValue");

        var loanterm=$("#loanterm").val();
        var loantermtype=$("#loantermtype").val();
           
        var loantermtypestr;
        //将日期字符串分隔为数组,数组元素分别为年.月.日
        var date1Str = pactbegindate.split("-");
        //根据年 . 月 . 日的值创建Date对象
        var date1Obj = new Date(date1Str[0],(date1Str[1]-1),date1Str[2]);

        //将日期字符串分隔为数组,数组元素分别为年.月.日
        var date2Str = pactenddate.split("-");
        //根据年 . 月 . 日的值创建Date对象
        var date2Obj = new Date(date2Str[0],(date2Str[1]-1),date2Str[2]);

        var year1 = date1Obj.getFullYear();
        var year2 = date2Obj.getFullYear();

        //相差的年数
        var differYears =year2-year1;
        
        var month1 = date1Obj.getMonth(); 
        var month2 = date2Obj.getMonth();

        //相差的月数
        var differMonths=differYears*12+(month2-month1);

        var day1=parseInt(date1Str[2]);
        var day2=parseInt(date2Str[2]);

        //相差的天数
        var differDays=day2-day1;

        if(null!=loantermtype&&loantermtype==1){
            loantermtypestr="年";
            if (loanterm!=differYears) {
                alert("起止日期相差的年数"+differYears+loantermtypestr+",合同期限:"+loanterm+loantermtypestr+",请确认起止日期是否正确!");
                return false;
            }

            if (month2!=month1) {
                alert("请检查起止日期的月份是否相等!");
                return false;
            }

            //大于等于就正确
            if (differDays<0) {
                alert("请检查起止日期的'天数'是否正确!");
                return false;
            }
            
            return true;
        }else if(null!=loantermtype&&loantermtype==2){
            loantermtypestr="个月";
            if (loanterm!=differMonths) {
                alert("起止日期相差的月数"+differMonths+loantermtypestr+",合同期限:"+loanterm+loantermtypestr+",请确认起止日期是否正确!");
                return false;
            }

            //大于等于就正确
            if (differDays<0) {
                alert("请检查起止日期的'天数'是否正确!");
                return false;
            }
            
            return true;
        }else{
            var t1 = date1Obj.getTime();
            var t2 = date2Obj.getTime();
            var dateTime = 1000*60*60*24; //每一天的毫秒数
            var minusDays = Math.floor(((t2-t1)/dateTime));//计算出两个日期的天数差
            var days = Math.abs(minusDays);//取绝对值
            
            loantermtypestr="天";
            if (loanterm!=days) {
                alert("起止日期相差的天数"+days+loantermtypestr+",合同期限:"+loanterm+loantermtypestr+",请确认起止日期是否正确!");
                return false;
            }
            return true;
        }
    }

 

转载于:https://www.cnblogs.com/YLQBL/p/9604153.html


http://www.niftyadmin.cn/n/2145648.html

相关文章

jdbc中Statement接口实现CRUD操作(了解)

1.Statement接口实现CRUD package loey.java1;import java.sql.*; import java.util.HashMap; import java.util.Map; import java.util.Scanner;/*** 实现功能&#xff1a;* 1、需求* 模拟用户登录功能的实现* 2、业务描述* 程序运行的时候&#xff0c;提供一个输…

matlab ode45输出数值解,matlab 中ode45的源代码如何看懂

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼求常微分方程的数值解 ode45方法的源代码怎么看懂呢&#xff1f;四百多行 如何理解这些代码的核心思想 以方便未来自己使用呢&#xff1f;求大神指点迷津 感激不尽function varargout ode45(ode,tspan,y0,options,varargin)%ODE45…

sql oracle nvl,将多个列使用NVL – Oracle SQL

早安我心爱的sql向导和巫师,我想要在3个表中替换3列数据.目前我正在使用NVL功能,但这只限于两列.参见下面的例子&#xff1a;SELECT ccc.case_id,NVL (ccvl.descr,ccc.char)) char_valFROM case_char ccc,char_value ccvl,lookup_value lval1WHEREccvl.descr() ccc.valueAND c…

jdbc中PreparedStatement替换Statement实现CRUD与Blob类型的操作

1.PreparedStatement的理解&#xff1a; ① PreparedStatement 是Statement的子接口② An object that represents a precompiled SQL statement.③ 可以解决Statement的sql注入问题&#xff0c;拼串问题 PreparedStatement和Statement对比&#xff1f; Statement存在SQL注入…

创建RHEL-server-7.0操作系统

创建RHEL-server-7.0操作系统 1.双击进入VMware 2.点击创建虚拟机 3.点击自定义&#xff0c;然后点击下一步 4.选择12.0的版本&#xff0c;兼容性大。然后点击下一步 5.选择Linux&#xff08;L&#xff09;.版本选择Red Had Eenterprise Liunx 7 64 位 点击下一步 6.选择稍后安…

oracle挑库发放次数,EBS OM发运状态 wsh_delivery_details.RELEASED_STATUS

wsh_delivery_details这个表用来存储记录销售订单的物料的发运明细信息&#xff0c;字段RELEASED_STATUS标识着该发运的状态&#xff0c;通常有值R,S,Y,C这几个状态。通过一脚本查下这个字段的含义&#xff1a;SELECT Lookup_Type,Lookup_Code,Meaning,Description,View_Applic…

Spring Cloud-鸿鹄Cloud分布式微服务云系统—组件化(三)

Spring Cloud集成项目有很多&#xff0c;下面我们列举一下和Spring Cloud相关的优秀项目&#xff0c;我们的企业架构中用到了很多的优秀项目&#xff0c;说白了&#xff0c;也是站在巨人的肩膀上去整合的。在学习Spring Cloud之前大家必须了解一下相关项目&#xff0c;希望可以…

ios json php null,PHP-在Android应用中获取jsonObject的Null值

我有从json对象获取值的问题.json_encode将空字符串返回给android.Logcat&#xff1a;05-01 22:36:21.653: D/Create Response(801): {}05-01 22:36:21.653: W/System.err(801): org.json.JSONException: No valuefor success05-01 22:36:21.663: W/System.err(801): atorg.jso…