4

嗨,我正在尝试创建一个变量,即今天的当前日期。我正在尝试为其添加 106 天,它成功运行。然后我尝试创建第二个变量 today2 并从“今天”变量中减去 31 天(当前日期 + 106 -31)。这部分不起作用。这就是它给我的...

2013 年 3 月 28 日星期四 11:52:21 EDT
2012 年 11 月 27 日星期二 11:52:21 EST

第二行不是第一行前 31 天。有人可以帮我纠正这个吗?

随意玩我的 jsfiddle http://jsfiddle.net/fjhxW/

<div id="current"></div>
<div id="current2"></div>
<div id="current3"></div>

var today = new Date();
var today2 = new Date();

today.setDate(today.getDate() + 106);

today2.setDate(today.getDate() - 31);  

var dd = today.getDate();
var mm = today.getMonth(); //January is 0!
var yy = today.getFullYear();

document.getElementById('current').innerHTML = today;
document.getElementById('current2').innerHTML = today2;
4

4 回答 4

4

现在是圣诞节时间,所以我给出的答案只是复制/粘贴:

var oneDay = 24 * 60 * 60 * 1000, // 24h
    today = new Date().getTime(), // in ms
    firstDate,
    secondDate;

firstDate = new Date(today + 106 * oneDay);
secondDate = new Date(firstDate.getTime() - 31 * oneDay);
于 2012-12-12T17:10:10.640 回答
2

尝试日期js

Date.parse('t - 31 d'); // today - 31 days
Date.today().add(106).days().add(-31).days();
于 2012-12-12T17:15:58.723 回答
0

您不能将负数传递给setDatesetDate用于设置日期以设置绝对天数,而不是相对天数。

文档

如果您指定的参数超出预期范围,setDate 会尝试相应地更新 Date 对象中的日期信息。例如,如果您对 dayValue 使用 0,则日期将设置为上个月的最后一天。

于 2012-12-12T17:05:33.993 回答
0

数学解法:

将 75 天添加到当前日期 (106 - 31),然后将 31 天添加到该日期。更改您在代码上显示两个日期的顺序。

当你总是可以前进时,为什么要前进和后退?

于 2012-12-12T17:16:13.653 回答