`

某个时间增加/减去N天之后的时间--JS方法

阅读更多
//date加上num天数之后等到的时间;date格式:YYYY-MM-DD
function dateAddNumDays(date,num)
{
	var dates = date.split("-");
	if(dates.length!=3)
	{
		alert("时间格式错误,请确认!");
		return ;
	}
	var year = dates[0];
	var month = dates[1];
	var day = dates[2];
	var newDay = Number(day)+Number(num);
	var oldDay = newDay;
	while(newDay>28){
		if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
		{
			if(newDay>31)
			{
				month = Number(month)+1;
				newDay = newDay-31;
			}
		}else if(month==4||month==6||month==9||month==11)
		{
			if(newDay>30)
			{
				month = Number(month)+1;
				newDay = newDay-30;
			}
		}else{	
			
			if(isLeapYear(year)==true){
				if(newDay>29)
				{
					month = Number(month)+1;
					newDay = newDay-29;
				}
			}else{
				if(newDay>28)
				{
					month = Number(month)+1;
					newDay = newDay-28;
				}
			}
			
		}
		if(month>12)
		{
			month = month-12;
                        year = Number(year)+1;
		}
		if(oldDay == newDay)
		{
			break;
		}
	}
	if(Number(month)<10)
	{
		month = "0"+Number(month);
	}
	if(newDay<10)
	{
		newDay = "0"+newDay;
	}
	return year+'-'+month+'-'+newDay;
}
//date减少num天数之后等到的时间;date格式:YYYY-MM-DD
function dateReduceNumDays(date,num)
{
	var dates = date.split("-");
	if(dates.length!=3)
	{
		alert("时间格式错误,请确认!");
		return ;
	}
	var year = dates[0];
	var month = dates[1];
	var day = dates[2];
	var newDay = Number(day)-Number(num);
	while(newDay<=0)
	{
		if(month==1||month==2||month==4||month==6||month==8||month==9||month==11)
		{
			newDay = newDay+31;
			month = Number(month)-1;
			
		}else if(month==5||month==7||month==10||month==12)
		{
			newDay = newDay+30;
			month = Number(month)-1;
		}else{
			if(isLeapYear(year)==true){
				newDay = newDay+29;
			}else{
				newDay = newDay+28;
			}
			month = Number(month)-1;
		}
		if(month<=0)
		{
			month = month+12;
			year = Number(year)-1;
		}
	}
	if(Number(month)<10)
	{
		month = "0"+Number(month);
	}
	if(newDay<10)
	{
		newDay = "0"+newDay;
	}
	return year+'-'+month+'-'+newDay;
}
//判断是否是闰年
function isLeapYear(pYear){
    if(!isNaN(pYear)){
     if((pYear%4==0 && pYear%100!=0)||(pYear%100==0 && pYear%400==0)){
    	 return true;
     }else{
    	 return false;
     }
    }else{
    	return false;
    }
}
分享到:
评论

相关推荐

    javascript文档

    javascript的官方文档 这些方便实用的信息将帮助您了解 JScript 的各个部分。 在“字母顺序的关键字列表”中,可以找到按字母顺序列出的所有 JScript 语言的主题。如果只需要查看某个主题(例如对象),则有对该主题...

    微软JavaScript手册

    getTimezoneOffset 方法 返回主机的时间和全球标准时间(UTC)之间的差(以分钟为单位)。 getUTCDate 方法 使用全球标准时间(UTC)返回 Date 对象的日期值。 getUTCDay 方法 使用全球标准时间(UTC)返回 Date ...

    原生js实现倒计时--2018

    同样地,使用`getTime()`方法获取未来时间点距离1970年的毫秒数,然后通过它减去当前时间的毫秒数,得到未来时间距离现在的总毫秒数。 ```javascript var newTime = newDate.getTime(); // 2018年距离1970年的毫秒...

    JScript 语言参考

    getTimezoneOffset 方法 返回主机的时间和全球标准时间(UTC)之间的差(以分钟为单位)。 getUTCDate 方法 使用全球标准时间(UTC)返回 Date 对象的日期值。 getUTCDay 方法 使用全球标准时间(UTC)返回 Date ...

    JavaScript 特有方法计算二进制中1的个数 split方法

    本文将探讨两种使用JavaScript实现这个功能的方法,一种是传统的for循环,另一种是利用字符串的split方法。 首先,让我们看下传统的for循环方法。这种方法通过将数字转换成二进制字符串,然后遍历每个字符,如果...

    正则表达式实例教程详解

    在JavaScript中,我们可以使用正则表达式的方法来操作字符串: - `compile` 方法可以编译正则表达式,提高匹配性能。 - `match` 方法用于查找字符串中与正则表达式匹配的部分,并返回一个数组。 - `replace` 方法...

    JS日期加减,日期运算代码

    今天,我们将详细介绍 JS 日期加减、日期运算代码的实现方法。 首先,让我们来了解一下日期加减的基本概念。日期加减是指将某个日期加上或减去一定的天数、小时、分钟或秒数,以得到新的日期。例如,我们可以将某个...

    javascript实现随机读取数组的方法

    本文介绍了如何使用JavaScript实现随机读取数组元素的方法。这一功能的实现主要涉及JavaScript的随机数生成函数以及对数组的操作技巧。 首先,要实现随机读取数组中的元素,基本思路是生成一个随机数,这个随机数的...

    momentom

    momentom提供了丰富的API来操作日期,如添加或减去时间单位,克隆日期对象以避免副作用,以及检查日期是否在某个区间内等。 5. **时区支持** 考虑到全球化的需要,momentom可能包含了对时区的支持,允许用户在...

    【JavaScript源代码】教你javascript如何获取指针的位置.docx

    在JavaScript中,获取鼠标指针的位置是Web开发中常见的需求,尤其在实现交互式功能时。这个过程涉及到几个关键的事件属性以及浏览器兼容性处理。本文将详细解释如何使用JavaScript来获取鼠标的页面位置和相对元素的...

    jquery/css需要记录的小知识(持续补充)

    3. **JavaScript判断JSON对象是否含有某个值**: 在JavaScript中,使用`hasOwnProperty`方法可以检查JSON对象是否包含指定的属性。例如,若要判断`json`对象中是否存在`key1`,可以写成: ```javascript if (json....

    2021-2022计算机二级等级考试试题及答案No.17232.docx

    二叉树的性质中,如果一个二叉树有n个度为2的节点,那么它的叶子节点(度为0的节点)数量是n+1。这是因为二叉树的叶子节点数等于度为2的节点数加1,再减去度为1的节点数。题目中的答案是A。 国标码和内码是汉字编码...

Global site tag (gtag.js) - Google Analytics