从JavaScript的当前日期获取上个月的第一个日期

Getting the previous month's first date from current date in JavaScript

请任何人共享代码,以便在JavaScript中查找上个月的当前日期的第一个日期。 例如,如果当前日期是2009年1月25日,那么我应该将2008年12月1日作为结果。


直截了当,使用日期方法:

1
2
3
  var x = new Date();
  x.setDate(1);
  x.setMonth(x.getMonth()-1);


最简单的方法是:

1
2
3
var x = new Date();
x.setDate(0); // 0 will result in the last day of the previous month
x.setDate(1); // 1 will result in the first day of the month


处理从1月到12月的更新年份

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
var prevMonth = function(dateObj) {
    var tempDateObj = new Date(dateObj);

    if(tempDateObj.getMonth) {
        tempDateObj.setMonth(tempDateObj.getMonth() - 1);
    } else {
        tempDateObj.setYear(tempDateObj.getYear() - 1);
        tempDateObj.setMonth(12);
    }

    return tempDateObj
};

var wrapper = document.getElementById('wrapper');

for(var i = 0; i < 12; i++) {
    var x = new Date();
  var prevDate = prevMonth(x.setMonth(i));
    var div = document.createElement('div');
  div.textContent =
 "start month/year:" + i +"/" + x.getFullYear() +
 " --- prev month/year:" + prevDate.getMonth() +
 "/" + prevDate.getFullYear() +
 " --- locale prev date:" + prevDate.toLocaleDateString();
  wrapper.appendChild(div);
}
1
 


检查此链接:

http://blog.dansnetwork.com/2008/09/18/javascript-date-object-adding-and-subtracting-months/

编辑:我已经打了一个例子:

1
2
3
4
5
6
7
8
9
10
11
Date.prototype.SubtractMonth = function(numberOfMonths) {
var d = this;
d.setMonth(d.getMonth() - numberOfMonths);
d.setDate(1);
return d;
}

$(document).ready(function() {
    var d = new Date();
    alert(d.SubtractMonth(1));
});

安德鲁


这对我有用

1
2
3
var curDateMonth = new Date();
var prvDateMonth = new Date(curDateMonth.getFullYear(),curDateMonth.getMonth()-1,curDateMonth.getMonth());
console.log(curDateMonth.toLocaleString('en-US', { month: 'long' }) +' vs '+ prvDateMonth.toLocaleString('en-US', { month: 'long' }));