Javacript - 为什么向Date对象添加一个月会返回一个奇怪的数字?

以下内容返回11,这是正确的。Javacript - 为什么向Date对象添加一个月会返回一个奇怪的数字?

var month = d.getMonth(); 

alert(month);

当我尝试添加一个月返回非常不同的东西

var month = d.setMonth(d.getMonth() + 1); 

alert(month);

它返回:是,你是用你的代码的方法1513230546878个

回答:

返回值如下

  1. d.getMonth() - 从0到11代表月份的数字(Link)
  2. d.setMonth() - 一个数字,代表1970年(Link年1月1日起对象和午夜之间的毫秒数)

请注意,d.setMonth()将修改您的Date对象到位。所以,如果你想按照预期的代码工作,你可以写如下

var d = new Date()  

var month = d.getMonth();

alert(month);

d.setMonth(d.getMonth() + 1);

alert(d.getMonth());

回答:

d.setMonth()方法返回更新的时间戳值(见docs)。这就是为什么你有一个很长的数字。

如果你想获得本月你将使用按以下

var d = new Date("2017-10-03"); 

d.setMonth(d.getMonth() + 1);

var month = d.getMonth(); // get new month

alert(month);

希望它有助于

回答:

在Java脚本,如果你这样写:

var month = d.setMonth(d.getMonth() + 1); 

你得到时间戳。含义,表示您选择的月份的整数。

这是因为,的setDate接受dayValue参数:

Date.setDate(dayValue) 

意思是说:

var dt = new Date("Aug 28, 2008 23:30:00"); 

dt.setDate(24);

console.log(dt);

将导致:

Sun Aug 24 2008 23:30:00 //+ your standard gmt time 

如需进一步咨询,请参阅本Link

回答:

//set date to now: 

var d = new Date();

console.log(d);

//just checking

var month = d.getMonth();

console.log(month);

//add a month

d.setMonth(d.getMonth() + 1);

//now the month is one ahead:

console.log(d.getMonth());

console.log(d);

以上是 Javacript - 为什么向Date对象添加一个月会返回一个奇怪的数字? 的全部内容, 来源链接: utcz.com/qa/259662.html

回到顶部