6

我知道用java做的一种方法:

Calendar c5 = Calendar.getInstance();
c5.add(Calendar.MONTH, -6);
c5.getTime(); //It will give YYYYMMDD format three months ago.

有没有办法在javascript中做到这一点。我知道我可以使用 Date d = new Date(); 解析它并做一些代码来获取格式。但现在我不想解析和获取三个月前的日期。

4

1 回答 1

18
var dt = new Date('13 June 2013');
dt.setMonth(dt.getMonth()-1)

然后您可以使用此答案中的这段代码将其转换为 YYYYMMDD

 Date.prototype.yyyymmdd = function() {
   var yyyy = this.getFullYear().toString();
   var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based
   var dd  = this.getDate().toString();
   return yyyy + (mm[1]?mm:"0"+mm[0]) + (dd[1]?dd:"0"+dd[0]); // padding
  };

d = new Date();
d.yyyymmdd();

有什么要小心的。如果你在 3 月 31 日减去一个月,会发生什么?你不能得到2月31日!有关更多详细信息,请参阅答案。

于 2012-06-13T19:21:49.970 回答