您好我今天正在尝试创建一个变量,即今天的当前日期。我试图添加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;
答案 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)
您无法将否定号传递给setDate
。 setDate
用于设置日期以设置绝对日,而不是相对天。
来自the docs:
如果您指定的参数超出预期范围,setDate会尝试相应地更新Date对象中的日期信息。例如,如果对dayValue使用0,则日期将设置为上个月的最后一天。
答案 3 :(得分:0)
数学解决方案:
在当天添加75天(106 - 31),然后在该日期添加31天。更改您在代码中显示两个日期的顺序。
为什么你总能前进时前进和后退?