为什么我不能将方法的结果存储在变量中的日期对象上

时间:2016-01-09 12:08:49

标签: javascript date object methods initialization

这是我在Beginning Javascript中解决问题的时候。任务是在12个月后显示一个日期。

这似乎有效:

duration

虽然这不是:

var dateNow = new Date ();
var currentMonth = dateNow.getMonth();
dateNow.setMonth(currentMonth + 12);
var dateNext = dateNow;
document.write(dateNext.toDateString())

为什么我不能初始化dateNext的变量?

对不起,如果这看起来像一个基本问题,我就是一周了。

2 个答案:

答案 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设置为。