0

所以我正在开发一个 Javascript 日历来反映当前月份以及上个月的最后几天以及下个月的前几天。我遇到了一个我一生都无法解决的问题。

我有以下

var today = new Date();
var lastMonthDays =  new Date(today.getFullYear(), today.getMonth() - 1, 0).getDate();

这应该分别返回上个月的最后一天,但它给了我代表 31 天的值 31,但是,在四月只有 30 天。所以我最好的猜测是它给了我当前月份的天数。这不应该给我30吗?我在网上查看了其他示例,从它的外观来看,我现在拥有的应该可以正常工作。

4

2 回答 2

2

today.getMonth() 给出了一个零索引的月份。IE

一月:0,二月:1,三月:2,...

因此,您不需要 -1 来获得上个月

var today = new Date();
var lastMonthDays =  new Date(today.getFullYear(), today.getMonth(), 0).getDate();
于 2013-05-17T18:02:16.643 回答
2

不,它给你 31 天,因为三月有 31 天。尝试这个:

var lastMonthDays =  new Date(today.getFullYear(), today.getMonth(), 0).getDate();

day-of-month 字段中的 0 实际上表示“本月 1 日的前一天”。

于 2013-05-17T18:02:49.767 回答