Javascript将日期添加到日期

时间:2012-12-12 16:56:42

标签: javascript html date

您好我今天正在尝试创建一个变量,即今天的当前日期。我试图添加106天,它成功地工作。然后我试图在今天创建第二个变量2并从'今天'变量减去31天(当前日期+ 106-31)。这部分不起作用。这就是它给我的......

Thu Mar 28 11:52:21 EDT 2013
2012年11月27日星期二11:52:21 2012

第二行不是第一行前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 个答案:

答案 0 :(得分: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);

答案 1 :(得分:2)

尝试datejs

Date.parse('t - 31 d'); // today - 31 days
Date.today().add(106).days().add(-31).days();

答案 2 :(得分:0)

您无法将否定号传递给setDatesetDate用于设置日期以设置绝对日,而不是相对天。

来自the docs

  

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

答案 3 :(得分:0)

数学解决方案:

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

为什么你总能前进时前进和后退?