我在这个论坛上进行了搜索,找到了许多有用的答案,但是我使用的答案之一仅在特定条件下有效。

我正在填充一个星期日历,只需要从日期选择器确定一周的开始(星期一),然后添加到该日期以在接下来的6天中填充文本字段。仅当日期选择器选择在同一月份时,此方法才有效。

因此,如果我选择2013年5月15日星期三,它将正确返回并填充5月13日的星期一,5月14日的星期二,依此类推。

但是,如果我选择2013年5月1日(星期三),则它会正确填充4月29日(星期一),而星期二则是5月30日(添加一个月而不是一天)。

我应该注意,我正在Application Craft中构建它,所以我不知道这是否有影响。

这是我的代码:

var curr = new Date(app.getValue("DatePicker2")); // get selected date
var first = curr.getDate() - curr.getDay() +1; // Adjust for monday start of week
var firstday = new Date(curr.setDate(first));
var secondday = new Date();
secondday.setDate(firstday.getDate()+1);


谁能看到我哪里出问题了?

谢谢

塔米

最佳答案

这里

secondday.setDate(firstday.getDate()+1)

由于您仅在setDate函数中指定日期,因此在这种情况下,它将假设“本”月恰好是May

所以,你可以

secondday = new Date(firstday.getFullYear(), firstday.getMonth(), firstday.getDate()+1)

10-06 07:49