Javascript 设置日期不为';t返回当月的最后一天

Javascript 设置日期不为';t返回当月的最后一天,javascript,jquery,datetime,Javascript,Jquery,Datetime,我预计是31天,因为这个月10月有31天,我的代码哪一部分是错误的 function lastDayOfMonth(given_month) { var d = new Date(); d.setDate(0); d.setMonth(given_month); return d.toISOString(); } console.log(lastDayOfMonth(given_month)) 2016-10-30T13:16:14.227Z setDate(0)将生成上月的

我预计是31天,因为这个月10月有31天,我的代码哪一部分是错误的

function lastDayOfMonth(given_month) {
  var d = new Date();
  d.setDate(0);
  d.setMonth(given_month);
  return d.toISOString();
}

console.log(lastDayOfMonth(given_month))
2016-10-30T13:16:14.227Z

setDate(0)将生成上月的最后一天

setDate(0)将生成上月的最后一天

d.setDate(0);
将日期设置为上个月的最后一天。也就是说,如果您在10月份运行此脚本,则日期将设置为9月30日

然后你就跑

d.setMonth(given_month);
这将设置月份,但保留月份的日期不变。我假设给定的月份是9(即10月),因此这将导致10月30日

有关更多信息,请参阅

given_month = 10;

function lastDayOfMonth(given_month) {
  var d = new Date();
  d.setDate(15);
  d.setMonth(given_month);
  d.setDate(0)
  return d.toISOString();
}

console.log(lastDayOfMonth(given_month)) // 2016-10-30T13:16:14.227Z
将日期设置为上个月的最后一天。也就是说,如果您在10月份运行此脚本,则日期将设置为9月30日

然后你就跑

d.setMonth(given_month);
这将设置月份,但保留月份的日期不变。我假设给定的月份是9(即10月),因此这将导致10月30日

有关更多信息,请参阅

given_month = 10;

function lastDayOfMonth(given_month) {
  var d = new Date();
  d.setDate(15);
  d.setMonth(given_month);
  d.setDate(0)
  return d.toISOString();
}

console.log(lastDayOfMonth(given_month)) // 2016-10-30T13:16:14.227Z
今天是31日,所以,新的日期设置为31日;将月设置为10(11月)时,天仍然是31,但11月只有30天,因此会出现错误



今天是31日,所以,新的日期设置为31日;当您将月份设置为10(11月)时,天仍然是31天,但11月只有30天,因此会出现错误。

我认为这对您有帮助吗?别担心,它今天失败了,但明天会成功:P(这是真的!!,但要给出回应)@sergio0983是的,有时会发生。哈哈,你觉得这对你有帮助吗?别担心,它今天失败了,但明天会成功:P(这是真的!!,但我要给出一个回应)@sergio0983是的,有时候会发生,hahaI应该做setDate(1)?这个月是10月,我预计是31号。但我有30个?没有。如果您想获得当月的最后一天,请执行
d.setMonth(给定的\u month+1)
No,这将给我11月30日我应该执行setDate(1)?这个月是10月,我希望是31日。但我有30个?没有。如果要获取当前月份的最后一天,请执行
d.setMonth(给定的月份+1)
No,这将为我提供11月30日给定的月份值为9,这意味着10月,但10月不是有31天吗?
var d=new Date()使用当前日期/时间创建新的日期对象<代码>d.setDate(0)将日期设置为上个月的最后一天,即9月30日<代码>d.setMonth(给定月)将月份设置为十月,但不更改月份的日期,即仍然是30。所以你的最终日期是10月30日。我还是不明白。我现在的日期是10月30日。请告诉我为什么十月的最后一天是30。因为
d.setDate(0)
更改为上个月的最后一天。如果你仍然不明白,你应该一步一步地调试你的函数,检查你的日期对象在每条语句之后是如何变化的。那么我现在该怎么做呢?我只想得到一个月的最后一天,给定的月份是一个变量。给定的月份值是9,这意味着10月。但10月不是有31天吗?
var d=new Date()使用当前日期/时间创建新的日期对象<代码>d.setDate(0)将日期设置为上个月的最后一天,即9月30日<代码>d.setMonth(给定月)将月份设置为十月,但不更改月份的日期,即仍然是30。所以你的最终日期是10月30日。我还是不明白。我现在的日期是10月30日。请告诉我为什么十月的最后一天是30。因为
d.setDate(0)
更改为上个月的最后一天。如果你仍然不明白,你应该一步一步地调试你的函数,检查你的日期对象在每条语句之后是如何变化的。那么我现在该怎么做呢?我只想得到一个月的最后一天,给定的月是一个变量。补充;请注意,15可以是30以下的任何数字。如何获取当前月份但最后一天?比如2016年10月31日?我9岁就过了一个月。我把这个月算对了,但不是最后一天,应该是31而不是30。我该怎么办。补充;请注意,15可以是30以下的任何数字。如何获取当前月份但最后一天?比如2016年10月31日?我9岁就过了一个月。我把这个月算对了,但不是最后一天,应该是31而不是30。我该怎么办