如何检查日期是否是一个月的最后一天

Javascript / jQuery: How to check if date is last day of month

本文关键字:一个 最后一天 日期 何检查 检查 是否是      更新时间:2023-09-26

我有以下代码(缩短),它在循环遍历数组时创建一个月的日期。

这工作很好到目前为止,但我正在努力停止它,如果它达到一个月的最后一天。我使用它来动态地将表行添加到HTML表中,并且由于数组设置为在31结束,因此当设置的月份少于31天时,它总是从下一个月开始。然后,我的表中的单元格显示例如. ...28, 29, 1, 2为二月专栏。

谁能告诉我如何检查day1, day2day3是否是一个月的最后一天,如果将它们设置为"?

我的想法是,以下将给我一个月的最后一天,但我找不到一种方法来工作,并正确地使用它进行比较:

var d = new Date(y, m+1, 0);

My JS(缩短):

$('#btnStart').on('click', function(){
    var date1, day1;
    var date2, day2;            
    var d = 0;
    var m = 0;  // user input
    var y = 2015; // user input
    for (d = 0; d <= 30; d++) {
        date1 = new Date(y, m, d+1);
        day1 = date1.getDate();
        date2 = new Date(y, m+1, d+1);
        day2 = date2.getDate();
    }
});

更新:这只需要在给定的一年内,所以它永远不会从12月到1月。

非常感谢任何帮助与此,迈克

如果在日期上加一天,得到的日期是下个月的第一天,则检查的日期是该月的最后一天。

之类的

isLast = (new Date(examinedDate.getTime() + 24*60*60*1000).getDate()) === 1

您应该使用date.getTime()来比较日期。

使用示例代码运行jsbin:

http://jsbin.com/puhuvirize/2/edit?js

输出

这将给出月'm'的最后一天:

new Date(y, m + 1, 0)

将此添加到For循环

if(day2 < day1)
    break;

使用一个简单的函数:

function isLastDay(y, m, d)
{
    var d1 = (m < 11) ? new Date(y, m + 1, 0) : new Date(y, 0, 0);
    var d2 = new Date(y, m, d);
    return (d1.getTime() === d2.getTime());
}