如何使用 javascript 验证用户输入的日期是该月的最后一天?
最佳答案
(更新:请参阅底部的最后一个示例,但其余部分留作背景。)
您可以向 Date
实例添加一天,然后查看月份是否发生变化(因为 JavaScript 的 Date
对象会智能地修复无效的日期值),例如:
function isLastDay(dt) {
var test = new Date(dt.getTime()),
month = test.getMonth();
test.setDate(test.getDate() + 1);
return test.getMonth() !== month;
}
...或作为 paxdiablo指出,您可以检查结果中的日期,这可能更快(少一个函数调用)并且肯定更短:
function isLastDay(dt) {
var test = new Date(dt.getTime());
test.setDate(test.getDate() + 1);
return test.getDate() === 1;
}
Another gratuitous live example
如果您愿意,您可以在其中嵌入更多逻辑以避免创建临时日期对象,因为它真的只在二月份需要,其余的只是一个表查找,但两者的优点以上是他们将所有日期数学计算推迟到 JavaScript 引擎。创建对象的成本不会高到让人担心。
...最后:自JavaScript specification要求(第 15.9.1.1 节)一天的长度恰好 86,400,000 毫秒(实际上天 vary in length 有点),我们可以通过添加日期来使上面的时间更短:
function isLastDay(dt) {
return new Date(dt.getTime() + 86400000).getDate() === 1;
}
关于javascript - 如果是一个月的最后一天,如何使用 javascript 验证日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6355063/