`

JS 获得两个时间间隔天数

阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>

</head>
<body>
<input type=text value="2008-02-04" id="gmtStartDay">
<input type=text value="2008-03-04" id ="gmtEndDay">
<input type=button id=bt value="OK" onclick="javascript:checkDiffDays();"/>
</body>
<script language=javascript>

//计算两个日期的差值,并弹出窗口,提醒错误
function checkDiffDays() {
    var gmtStartDay = document.getElementById("gmtStartDay").value;
    var gmtEndDay = document.getElementById("gmtEndDay").value;
    var diffDays = getDiffDays(gmtStartDay,gmtEndDay);
	if (diffDays > 90) {
		alert("间隔时间无效,间隔时间不能大于90天!");
		return false;
	}
	alert(diffDays);
	return true;
}


//得到两个日期的间隔时间的天数
function getDiffDays(date1,date2) {
    var regexp=/^(\d{1,4})[-|\.]{1}(\d{1,2})[-|\.]{1}(\d{1,2})$/;
    var monthDays=[0,3,0,1,0,1,0,0,1,0,0,1];
    regexp.test(date1);
    var date1Year=RegExp.$1;
    var date1Month=RegExp.$2;
    var date1Day=RegExp.$3;

    regexp.test(date2);
    var date2Year=RegExp.$1;
    var date2Month=RegExp.$2;
    var date2Day=RegExp.$3;
	
	if (validatePeriod(date1Year,date1Month, date1Day, date2Year, date2Month, date2Day)) {
		var firstDate = new Date(date1Year, date1Month, date1Day);
		var secondDate = new Date(date2Year, date2Month, date2Day);
		
		var result = Math.floor((secondDate.getTime() - firstDate.getTime()) / (1000*3600*24));
		for(j = date1Year; j < date2Year; j++) {
			if (isLeapYear(j)) {
				monthDays[1] = 2;
			} else {
				monthDays[1] = 3;
			}
			for(i = date1Month -1 ; i < date2Month; i++) {
				result = result - monthDays[i]
			}
		}
		return result;
	} else {
		return ;
	}
	if(validatePeriod(date1Year,date1Month,date1Day,date2Year,date2Month,date2Day)){
    	firstDate=new Date(date1Year,date1Month,date1Day);
         secondDate=new Date(date2Year,date2Month,date2Day);
      
         result=Math.floor((secondDate.getTime()-firstDate.getTime())/(1000*3600*24));
         for(j=date1Year;j<=date2Year;j++){
             if(isLeapYear(j)){
                 monthDays[1]=2;
             }else{
                 monthDays[1]=3;   
             }
             for(i=date1Month-1;i<date2Month;i++){
                 result=result-monthDays[i];
             }
         }
         return result;
     }else{
      return 'the first field must before the second date.';
     }
}

//判断年份是否是闰年
function isLeapYear(year) {
	if (year % 4 == 0 && (year % 100 != 0) || (year % 400 == 0)) {
		return true;
	}
	return false;
}

//判断前后两个日期
function validatePeriod(fyear, fmonth, fday, byear, bmonth, bday) {
	if (fyear < byear) {
		return true;
	} else if (fyear == byear) {
		if (fmonth < bmonth) {
			return true;
		} else if (fmonth == bmonth) {
			if (fday <= bday) {
				return true;
			} else {
				return false;
			}
		} else {
			return false;
		}
	} else {
		return false;
	}
}
</script>
</html>

分享到:
评论

相关推荐

    两个时间间隔的天数

    这段代码提供了一个JavaScript函数 `functionDateDiff`,用于计算两个日期字符串之间相隔的天数。 #### 函数解析 - **参数**: - `sDate1`:表示起始日期的字符串。 - `sDate2`:表示结束日期的字符串。 - 这两...

    用javascript实现计算两个日期的间隔天数

    代码如下:// 计算两个日期的间隔天数 function DateDiff(sDate1, sDate2){ //sDate1和sDate2是2002-12-18格式 var aDate, oDate1, oDate2, iDays aDate = sDate1.split(“-“) oDate1 = new Date...

    计算两个日期相隔天数并减去节假日

    计算两个日期相隔天数并减去节假日,这个可以使用在各种需要通知的场景以及工作日提醒等

    kettle中使用js计算两个日期之间的天数.txt

    kettle中使用js计算两个日期之间的天数

    js+my97控件计算时间日期间隔

    除了计算补休天数,时间日期间隔的计算还可以应用在许多其他场景,如计算年龄、确定两个事件之间的时间差、判断是否过期等。对于开发者来说,熟练掌握JavaScript的Date对象和第三方日期插件的使用是必不可少的技能。...

    Js 时间间隔计算的函数(间隔天数)

    在JavaScript中,时间...总之,`GetDateDiff`函数是JavaScript中计算两个日期之间间隔天数的一个简单实现,适用于不需要额外复杂功能的场景。然而,对于大型项目,推荐使用专门的日期处理库以获得更强大和灵活的功能。

    JS计算两个时间相差分钟数的方法示例

    在JavaScript中,计算两个时间相差的分钟数是一个常见的任务,特别是在处理用户输入或者进行时间相关的逻辑时。本文通过一个具体的示例,展示了如何利用JavaScript来计算两个时间的差距,以分钟为单位。以下是对该...

    计算器(javascript)、计算两日期间隔天数等

    在这个主题中,你将学习到如何通过JavaScript实现一个基本的计算器,以及如何处理日期和时间,包括计算两个日期之间的间隔天数。这些都是JavaScript开发中非常实用的技能,对于增强你的前端开发能力非常有帮助。在...

    指定两个日期计算相隔的天数

    在编程和数据分析中,计算两个日期之间的差值是一项常见的任务,尤其在日程安排、时间序列分析或报表生成等场景中。"指定两个日期计算相隔的天数"这一功能通常涉及日期函数的使用,这些函数能够帮助我们快速地得出两...

    日期时间间隔计算

    通过减法运算,我们可以得到两个时间戳之间的差值,然后转换为天、小时、分钟等单位。在Python中,可以使用`timedelta`对象;在JavaScript中,可以使用`Date`对象的`getTime()`方法获取时间戳,然后进行计算。 3. *...

    2日期相隔天数计算

    "2日期相隔天数计算"是一个基本但至关重要的功能,它可以帮助我们理解两个特定日期之间的差异。以下是对这个主题的详细解释。 首先,我们需要明确日期的表示方式。在计算机中,日期通常以年、月、日的形式存储,如...

    当前时间减去确定的时间得到一个时间

    标题和描述提到的“当前时间减去确定的时间得到一个时间”实际上是在谈论计算两个时间点之间的差值,这个差值通常表示为一个时间间隔。在这个过程中,我们可以使用不同的编程语言来实现。下面我们将详细探讨这个主题...

    JS 两个字符串时间的天数差计算

    JS 两个字符串时间的天数差 代码如下: var s = ((new Date(paramObj.end_date.replace(/-/g,”\/”))) – (new Date(paramObj.start_date.replace(/-/g,”\/”)))); var day = s/1000/60/60/24

    js计算两个日期间的天数月的实例代码

    在上述示例中,我们看到两种不同的方法来计算两个日期之间的天数和月数。 首先,`dateU` 函数是用来计算两个日期之间的月数和天数的。这个函数接受两个日期字符串作为参数,格式为`YYYYMMDD`。它首先提取出年、月、...

    js 时间转换 js format

    这可以通过直接减去两个Date对象来实现,结果会是一个时间间隔,单位为毫秒。例如: ```javascript var date1 = new Date("2022-07-15"); var date2 = new Date("2022-08-15"); var difference = Math.abs(date2 - ...

    js 两个日期比较相差多少天的实例

    这种方法不仅适用于整日的比较,还可以用于计算两个日期间任意时间点的间隔天数。 需要注意的是,这种方法假设了两个日期都在同一个时区。如果日期跨越不同的时区,或者需要考虑夏令时变化,那么可能需要更复杂的...

    JS日期区间获取时间代码.zip

    这个"JS日期区间获取时间代码"的压缩包可能包含了一些实用的代码片段,用于帮助开发者有效地处理日期区间,例如获取两个日期之间的差值、筛选特定日期范围内的数据等。以下是一些关于JavaScript日期处理的关键知识点...

    纯JS方法比较日期之间大小(实用)

    在日常的Web开发中,经常会遇到需要对日期进行处理的情况,比如比较两个日期的大小、计算日期间隔等。本篇将详细介绍如何仅使用JavaScript来实现日期之间的大小比较功能,并通过具体的代码示例来帮助理解。 #### 1....

Global site tag (gtag.js) - Google Analytics