Javascript / jQuery:如何检查日期是不是是一个月的最后一天

Posted

技术标签:

【中文标题】Javascript / jQuery:如何检查日期是不是是一个月的最后一天【英文标题】:Javascript / jQuery: How to check if date is last day of monthJavascript / jQuery:如何检查日期是否是一个月的最后一天 【发布时间】:2015-08-16 01:18:07 【问题描述】:

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

到目前为止,这工作正常,但我正在努力如果它到达一个月的最后一天就停止它。 我正在使用它来动态地将表行添加到 html 表中,并且由于数组设置为在 31 结束,因此当设置的月份少于 31 天时,它总是从下个月开始。然后我表格中的单元格显示例如...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 月。

非常感谢您对此的任何帮助, 迈克

【问题讨论】:

【参考方案1】:

如果您在日期上加上一天,结果日期是下个月的第一天,那么检查的日期就是该月的最后一天。

类似

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

【讨论】:

简单,一点也不差 非常感谢 - 这很好用,在我的案例中比其他方法更容易实现。 这是天才 - 谢谢...这是我的代码,效果很好(selected_date 已经是一个新的 Date())if(new Date(selected_date.getTime() + 24*60*60*1000).getDate() === 1) is_end_of_month = true;【参考方案2】:

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

使用您的示例代码使用 jsbin:

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

这将为您提供“m”月的最后一天:

new Date(y, m + 1, 0)

【讨论】:

也谢谢你! - 在尝试了不同的方法之后,这对我来说效果最好。再次感谢。【参考方案3】:

在你的 For 循环中添加这个

if(day2 < day1)
    break;

【讨论】:

谢谢。这不起作用,因为在这种方法中 day2 总是大于 day1。【参考方案4】:

也许有一个简单的功能:

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());

【讨论】:

new Date(y, m + 1, 0) 中的 0(零);给你上个月的最后一天 这总是假的,因为日期对象 d1 和日期对象 d2 永远不会相同。 @slash197:谢谢!你能解释一下最后一行吗? @keewee279 将日期对象转换为数字,以便您准确比较它们 如果提供的日期是一个月的最后一天,则返回 true,否则返回 false

以上是关于Javascript / jQuery:如何检查日期是不是是一个月的最后一天的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript/jQuery - 如何检查字符串是不是包含特定单词

JavaScript 如何使用jQuery检查元素是否存在

如何检查url查询字符串是不是等于javascript(或jquery)[重复]

Javascript / jQuery:如何检查日期是不是是一个月的最后一天

如何检查用户是不是使用 jQuery/Javascript 从一组复选框中选中了至少一个复选框?

javascript和jquery中检查函数是否存在