将javascript日期对象设置为30天之前

时间:2015-10-07 10:44:54

标签: javascript date

让我们说现在日期是10/07/2015,即如果我创建一个如下所示的javascript日期对象,我今天的日期将为07/10/2015

var now = new Date();

因此,如果日期为10/07/2015,我希望30天后退,07/09/2015

我确实喜欢如下所示,但是我得到了31/08/2015

var now = new Date();
now .setDate(-30);

任何人都可以告诉我一些解决方案吗

3 个答案:

答案 0 :(得分:1)

您可以尝试这样:

Date.today().add(-30).days();

如果你想要那么moment.js在处理日期时非常好

moment().subtract(30, 'days');

如果您不想使用任何库,那么

var now = new Date()
var prev = new Date().setDate(now.getDate()-30)

答案 1 :(得分:0)

您可以简单地使用now.getDate()



var now = new Date();
document.write(now);
now.setDate(now.getDate() - 30);
document.write("<br/>");
document.write(now);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

Date对象内部包含一个值,该值对应于UTC时间1970年1月1日以来经过的毫秒数。

因此,使用此值(可通过Date.prototype.valueOf()访问),您可以添加或减去任何大小的“简单计算”时间间隔。通过简单计算,我指的是任何可以使用简单的算术计算的东西,例如(例如......)“ 1天4小时2分钟”等于(((1 * 24) + 4) * 60 + 2) * 60 * 1000。您可以将其添加/减去任何开始时间并创建一个新的Date对象:

var startDate = new Date();
var newDate = new Date(startDate.valueOf() + ((((1 * 24) + 4) * 60 + 2) * 60 * 1000));

alert(newDate);

在天数偏移的特定情况下,只需使用以下公式:

days * 24 * 60 * 60 * 1000