簡體   English   中英

Javascript / jQuery:如何檢查日期是否為每月的最后一天

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

我有以下代碼(縮短了),它在遍歷數組時創建一個月的日期。

到目前為止, 它仍然可以正常工作,但是如果它到了一個月的最后一天,我將竭力阻止它 我正在使用它動態地向HTML表添加表行,並且由於數組設置為以31結尾,因此當設置的月份少於31天時,數組總是從下個月開始。 然后,我表中的單元格在28, 29, 1, 2月列中顯示了例如... 28、29、1、2。

有人可以告訴我如何檢查day1day2day3是月份的最后一天,並將它們設置為嗎?

我的想法是,以下內容將給我一個月的最后一天,但是我找不到在這里進行操作並將其正確用於比較的方法:

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

我的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

在您的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());
}

您應該使用date.getTime()來比較日期。

使用示例代碼運行jsbin:

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

這將為您提供月份“ m”的最后一天:

new Date(y, m + 1, 0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM