gpt4 book ai didi

javascript - 如果是一个月的最后一天,如何使用 javascript 验证日期?

转载 作者:可可西里 更新时间:2023-11-01 01:37:57 24 4
gpt4 key购买 nike

如何使用 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;
}

Gratuitous live example

...或作为 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;
}

Final gratuitous example

关于javascript - 如果是一个月的最后一天,如何使用 javascript 验证日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6355063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com