[英]Javascript / jQuery: How to check if date is last day of month
我有以下代碼(縮短了),它在遍歷數組時創建一個月的日期。
到目前為止, 它仍然可以正常工作,但是如果它到了一個月的最后一天,我將竭力阻止它 。 我正在使用它動態地向HTML表添加表行,並且由於數組設置為以31結尾,因此當設置的月份少於31天時,數組總是從下個月開始。 然后,我表中的單元格在28, 29, 1, 2
月列中顯示了例如... 28、29、1、2。
有人可以告訴我如何檢查day1
, day2
或day3
是月份的最后一天,並將它們設置為嗎?
我的想法是,以下內容將給我一個月的最后一天,但是我找不到在這里進行操作並將其正確用於比較的方法:
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.