javascript怎么处理几个月前或几个月后的指定日期的教程

在平常项目开发过程中,经常会遇到需要在JavaScript中处理时间的情况,无非两种(1,逻辑处理  2,格式转换处理)。当然要说相关技术博,园子里闭着眼睛都能抓一把,但是我要做的是:既然有幸被我碰到了,就要尽可能的分析转化为自己最适合自己的东西,成为自己知识库的一部分;同时希望能帮助有需要的同学解决遇到的相关小问题。

时间逻辑处理

此类型常用需求为:推算几个月后(前)的今天的日期。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

/**

 *获取几个月前的输入日期

 *{param:DateTime} date 输入日期(YYYY-MM-DD)

 *{param:number } monthNum 月数

 */

 GetPreMonthDay:function(date,monthNum)

 {

  vardateArr = date.split('-');

  varyear = dateArr[0];//获取当前日期的年份

  varmonth = dateArr[1];//获取当前日期的月份

  varday = dateArr[2];//获取当前日期的日

  vardays =newDate(year, month, 0);

  days = days.getDate();//获取当前日期中月的天数

  varyear2 = year;

  varmonth2 = parseInt(month) - monthNum;

  if(month2 <=0) {

   year2 = parseInt(year2) - parseInt(month2 / 12 == 0 ? 1 : parseInt(month2) / 12);

   month2 = 12 - (Math.abs(month2) % 12);

  }

  varday2 = day;

  vardays2 =newDate(year2, month2, 0);

  days2 = days2.getDate();

  if(day2 > days2) {

   day2 = days2;

  }

  if(month2 < 10) {

   month2 ='0'+ month2;

  }

  vart2 = year2 +'-'+ month2 +'-'+ day2;

  returnt2;

 }

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

/**

*获取下一个月的输入日期

*{param:DateTime} date 输入日期(YYYY-MM-DD)

*{param:number } monthNum 月数

*/

GetNextMonthDay:function(date, monthNum)

{

 vardateArr = date.split('-');

 varyear = dateArr[0];//获取当前日期的年份

 varmonth = dateArr[1];//获取当前日期的月份

 varday = dateArr[2];//获取当前日期的日

 vardays =newDate(year, month, 0);

 days = days.getDate();//获取当前日期中的月的天数

 varyear2 = year;

 varmonth2 = parseInt(month) + parseInt(monthNum);

 if(month2 >12) {

  year2 = parseInt(year2) + parseInt((parseInt(month2) / 12 == 0 ? 1 : parseInt(month2) / 12));

  month2 = parseInt(month2) % 12;

 }

 varday2 = day;

 vardays2 =newDate(year2, month2, 0);

 days2 = days2.getDate();

 if(day2 > days2) {

  day2 = days2;

 }

 if(month2 < 10) {

  month2 ='0'+ month2;

 }

 

 vart2 = year2 +'-'+ month2 +'-'+ day2;

 returnt2;

}

测试效果:

发没发现有个问题,通过29日来推,前后都会是29。 1月31号推到二月就是2月29(因为2月就29天)。

那么这种逻辑对于有些需求来说就得根据实际情况变动一下。譬如:我想缴纳预存一个月的费用。当前我已经缴纳了2.1-2.29(2月一整月)的费用,预存一个月就应该是(3.1-3.31)。通过此逻辑得到却是3.1-3.29,所以使用请根据实际情况!

原文链接:http://www.cnblogs.com/peixuanzhihou/p/6204551.html

时间: 2024-10-29 13:37:57

javascript怎么处理几个月前或几个月后的指定日期的教程的相关文章

JavaScript中用getDate()方法返回指定日期的教程

  这篇文章主要介绍了JavaScript中用getDate()方法返回指定日期的教程,是JS入门学习中的基础知识,需要的朋友可以参考下 按照本地时间的javascript date.getDate()方法返回月份的一天,在指定日期.由getDate返回的值是1到31之间的整数. 语法 ? 1 Date.getDate() 下面是参数的详细信息: NA 返回值: 返回今天的日期和时间 例子: ? 1 2 3 4 5 6 7 8 9 10 11 <html> <head> <t

详解JavaScript时间处理之几个月前或几个月后的指定日期_javascript技巧

在平常项目开发过程中,经常会遇到需要在JavaScript中处理时间的情况,无非两种(1,逻辑处理  2,格式转换处理).当然要说相关技术博,园子里闭着眼睛都能抓一把,但是我要做的是:既然有幸被我碰到了,就要尽可能的分析转化为自己最适合自己的东西,成为自己知识库的一部分:同时希望能帮助有需要的同学解决遇到的相关小问题. 时间逻辑处理 此类型常用需求为:推算几个月后(前)的今天的日期. /** *获取几个月前的输入日期 *{param:DateTime} date 输入日期(YYYY-MM-DD)

JavaScript中用getDate()方法返回指定日期的教程_基础知识

 按照本地时间的javascript date.getDate()方法返回月份的一天,在指定日期.由getDate返回的值是1到31之间的整数.语法 Date.getDate() 下面是参数的详细信息:     NA 返回值: 返回今天的日期和时间例子: <html> <head> <title>JavaScript getDate Method</title> </head> <body> <script type="

新网域名服务器出故障 数万网站回到过去几月前

我们公司的网页被动了手脚,变成数个月前就废弃不用的旧页面,许多客户抱怨不仅无法看到更新信息,连网上资料下载也无法进行."读者余先生昨天上午致电晨报热线,反映网站突然"变脸"给公司业务造成很大影响. 严先生是一家科技公司的工作人员,昨天上午10点左右,他上网浏览公司网页,发现页面被动了手脚,不仅式样和色调被改得面目全非,一些链接地址也没了踪影.经过仔细观察,他发现这个"冒牌"网页是4个月前早已废弃不用的网页."废弃网页的IP地址与目前公司网页的IP

如何使用Javascript获取距今n天前的日期

本篇文章是对使用Javascript获取距今n天前日期的实现代码进行了详细的分析介绍,需要的朋友参考下   复制代码 代码如下:  function Test(day) {                 var today = new Date();                 var beforMilliseconds = today.getTime() - 1000 * 3600 * 24 * day;                 var beforday = new Date()

javascript得到当前页的来路即前一页地址的方法

 这篇文章主要介绍了javascript得到当前页的来路即前一页地址的方法,需要的朋友可以参考下  代码如下: <script language="javascript">  alert(document.referrer);  </script>     

乔布斯向谷歌宣战:10个月前意识到其威胁

业内分析师鲍勃·埃文斯(Bob Evans)今日发表文章称,苹果CEO史蒂夫·乔布斯(Steve Jobs)凭借持续的创新声名远扬,并且将苹果打造成全球最具价值的企业.但从向谷歌宣战这一并不惹人注目的行动中,恰恰体现了乔布斯的洞察力.以下为文章内容摘要: 史蒂夫·乔布斯(Steve Jobs)声名远扬的原因很多,如持续的创新,创建Pixar,不墨守成规,一贯的黑色上衣,以及把苹果打造成全球最具价值的企业.但一个并不惹人注意的成就却体现乔布斯的真正价值:向谷歌宣战. 10个月前,乔布斯意外地出席了

一个月前建的新站如何一个月后回本盈利

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 本文由易赛网站 www.yisai.net 小猪亲笔,转载请保留出处,欢迎大家探讨! 一个月前建的新站,如何一个月后回本盈利! 网站域名很重要,买域名的初衷,主要是看到竞争对手很多都在做百度推广,每天开销广告费很大,而且竞争相当激烈! 看到这种状况后,我觉得为何自己不买这个产品的域名呢,查询之后,发现与此产品相关的域名都被注册了,联系域名所有

当天送来的鲜奶,生产日期竟然是一个月前的

喝牛奶后身体不舒服,拿起牛奶袋一看,生产日期竟然是上个月,但是鲜奶保质期为4天 东南网-海峡都市报8月21日讯(记者 施建华 张超晖)喝下牛奶,感觉肚子马上不对劲,拿起袋子一看,当天送来的鲜奶,生产日期竟然是一个月前的.福州的冯先生昨天拨打本报热线表示,怀疑因为喝了家里订购的过期的光明牛奶,导致自己出现肠胃不舒服的情况.自己试喝感觉不适 冯先生昨日表示,从今年7月初开始订购光明牛奶给家里的小孩与老人饮用.因为订购的是鲜奶,冯先生称送奶员每日会把自己订购的三袋鲜奶送到家里来.冯先生称,8月19日下