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
用于二月专栏。
谁能告诉我如何检查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 月。
非常感谢您对此的任何帮助, 迈克
【问题讨论】:
【参考方案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 - 如何检查字符串是不是包含特定单词
如何检查url查询字符串是不是等于javascript(或jquery)[重复]
Javascript / jQuery:如何检查日期是不是是一个月的最后一天