这是我在Beginning Javascript中解决问题的时候。任务是在12个月后显示一个日期。
这似乎有效:
duration
虽然这不是:
var dateNow = new Date ();
var currentMonth = dateNow.getMonth();
dateNow.setMonth(currentMonth + 12);
var dateNext = dateNow;
document.write(dateNext.toDateString())
为什么我不能初始化dateNext的变量?
对不起,如果这看起来像一个基本问题,我就是一周了。
答案 0 :(得分:1)
这就是setMonth的工作原理。它不返回日期而是返回时间戳 - Epoch - 自1970年1月1日00:00:00 UTC以来经过的整数毫秒。
您可以改为执行此操作,但会更改dateNow
var dateNow = new Date ();
var currentMonth = dateNow.getMonth();
var dateNext = new Date(dateNow.setMonth(currentMonth + 12));
document.write(dateNext.toDateString());

这很可能是你想要的
var dateNow = new Date (); // optional
var dateNext = new Date();
dateNext.setMonth(dateNext.getMonth() + 12);
document.write(dateNext.toDateString());

答案 1 :(得分:1)
setMonth()方法的返回值是日期对象与1970年1月1日午夜之间的毫秒数.toDateString()是Date的方法,因此如果在数字上调用它,它就不起作用,这是你的第二个片段将dateNext设置为。