第五周第五天

javascript 计算N个月前的日期(YYYY-MM-DD)

标签: javascript 日期 date


做之前思考的问题:

  1. 比如现在是8月,如果往前8个月,那么应该就是上一年12月.
  2. 如果是31号,那么往前N个月,这个月是否有31号..2月同理.
  3. 2月还得考虑闰年,只有28天.
/**
* 获取上一个月
*
* @date 现在的日期. 格式为yyyy-mm-dd的日期,如:2014-01-25
* @pre 往前算几个月,Int. 如: 1月,2月,3月,....N月
*/
function getPreMonth(date,pre) {
    var arr = date.split('-');
    var year = arr[0]; 
    var month = arr[1]; 
    var day = arr[2];
    var year2 = year;
    var month2 = parseInt(month) - pre;
    if (month2 <= 0) {
        month2 =8-(pre- 12* parseInt(Math.round(pre/12)));
        if(month2>12){
            year2 =year2 - parseInt(Math.round(pre/12)) +1;
            month2 -=12;
        }else{
            year2 =year2 - parseInt(Math.round(pre/12));
        }
    } 
    var day2 = day;
    var days2 = new Date(year2, month2, 0);
    days2 = days2.getDate();
    if (day2 > days2) {
        day2 = days2;
    }
    if (month2 < 10) {
        month2 = '0' + month2;
    }
    var t2 = year2 + '-' + month2 + '-' + day2;
    return t2;
}

/* 以下为测试代码 */
window.onload = function(){
    var list=[];
    for(var i=0;i<100;i++)
    {
        list.push(i + " 月前 : "+ getPreMonth("2016-08-31",i));
    }
    console.log(list.join("<br/>"));

}

结果输出:

0 月前 : 2016-08-31
1 月前 : 2016-07-31
2 月前 : 2016-06-30
3 月前 : 2016-05-31
4 月前 : 2016-04-30
5 月前 : 2016-03-31
6 月前 : 2016-02-29
7 月前 : 2016-01-31
8 月前 : 2015-12-31
9 月前 : 2015-11-30
10 月前 : 2015-10-31
11 月前 : 2015-09-30
12 月前 : 2015-08-31
13 月前 : 2015-07-31
14 月前 : 2015-06-30
15 月前 : 2015-05-31
16 月前 : 2015-04-30
17 月前 : 2015-03-31
18 月前 : 2015-02-28
19 月前 : 2015-01-31
20 月前 : 2014-12-31
21 月前 : 2014-11-30
22 月前 : 2014-10-31
23 月前 : 2014-09-30
24 月前 : 2014-08-31
25 月前 : 2014-07-31
26 月前 : 2014-06-30
27 月前 : 2014-05-31
28 月前 : 2014-04-30
29 月前 : 2014-03-31
30 月前 : 2014-02-28
31 月前 : 2014-01-31
32 月前 : 2013-12-31
33 月前 : 2013-11-30
34 月前 : 2013-10-31
35 月前 : 2013-09-30
36 月前 : 2013-08-31
37 月前 : 2013-07-31
38 月前 : 2013-06-30
39 月前 : 2013-05-31
40 月前 : 2013-04-30
41 月前 : 2013-03-31
42 月前 : 2013-02-28
43 月前 : 2013-01-31
44 月前 : 2012-12-31
45 月前 : 2012-11-30
46 月前 : 2012-10-31
47 月前 : 2012-09-30
48 月前 : 2012-08-31
49 月前 : 2012-07-31
50 月前 : 2012-06-30
51 月前 : 2012-05-31
52 月前 : 2012-04-30
53 月前 : 2012-03-31
54 月前 : 2012-02-29
55 月前 : 2012-01-31
56 月前 : 2011-12-31
57 月前 : 2011-11-30
58 月前 : 2011-10-31
59 月前 : 2011-09-30
60 月前 : 2011-08-31
61 月前 : 2011-07-31
62 月前 : 2011-06-30
63 月前 : 2011-05-31
64 月前 : 2011-04-30
65 月前 : 2011-03-31
66 月前 : 2011-02-28
67 月前 : 2011-01-31
68 月前 : 2010-12-31
69 月前 : 2010-11-30
70 月前 : 2010-10-31
71 月前 : 2010-09-30
72 月前 : 2010-08-31
73 月前 : 2010-07-31
74 月前 : 2010-06-30
75 月前 : 2010-05-31
76 月前 : 2010-04-30
77 月前 : 2010-03-31
78 月前 : 2010-02-28
79 月前 : 2010-01-31
80 月前 : 2009-12-31
81 月前 : 2009-11-30
82 月前 : 2009-10-31
83 月前 : 2009-09-30
84 月前 : 2009-08-31
85 月前 : 2009-07-31
86 月前 : 2009-06-30
87 月前 : 2009-05-31
88 月前 : 2009-04-30
89 月前 : 2009-03-31
90 月前 : 2009-02-28
91 月前 : 2009-01-31
92 月前 : 2008-12-31
93 月前 : 2008-11-30
94 月前 : 2008-10-31
95 月前 : 2008-09-30
96 月前 : 2008-08-31
97 月前 : 2008-07-31
98 月前 : 2008-06-30
99 月前 : 2008-05-31
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容