我需要在javascript中创建一个将参数作为


DateRange(可能的值为“今天” /“本周” /“本月”
BooleanFullDate(可能的值为true / false)


现在,当参数值为Today时,它应该返回我

10/23/2013
10/23/2013


This Week和BooleanFullDate为true时,它应该返回我

10/20/2013
10/26/2013


This Week和BooleanFullDate为false时,它应该返回我

10/20/2013
10/23/2013


This Month和BooleanFullDate为true时,它应该返回我

10/01/2013
10/31/2013


This Month和BooleanFullDate为false时,它应该返回我

10/01/2013
10/23/2013


为此,我在这里编写了我的代码-JS Fiddle LINK

问题:-

现在,对于javascript来说还很陌生,我无法弄清楚几件事(您也可以在jsbin中看到)

当我呼叫GetStartAndEnd("Today");时,为什么会返回end: "9/23/2013",而不是end: "10/23/2013",(当月)?

最后,请有人可以建议我对代码进行改进吗?

最佳答案

当我打电话给GetStartAndEnd(“ Today”);为什么返回我结尾:
  “ 9/23/2013”​​,而不是结尾:“ 10/23/2013”​​,(当前月)?


好,


  getMonth()方法返回该月份的月份(从0到11)。
  指定的日期,根据当地时间。


因此,您必须将+1添加到getMonth()

手段:

var lmonth = lastDay.getMonth() + 1;

10-07 16:39