javascript 查找闰年

标签 javascript date textfield leap-year ecmascript-temporal

当我有二月份的时候,如何让下面的代码工作?目前正在到达这一天,然后在到达 if 之前停止以确定是否是闰年。

 if (month == 2) {
    if (day == 29) {
        if (year % 4 != 0 || year % 100 == 0 && year % 400 != 0) {
            field.focus();
             field.value = month +'/' +  '';
        }
    }
    else if (day > 28) {
        field.focus();
             field.value = month +'/' +  '';
    }
}

最佳答案

使用Date objects更安全对于日期时间的东西,例如

isLeap = new Date(year, 1, 29).getMonth() == 1

由于人们不断询问它到底是如何工作的,这与 JS 如何根据年-月-日计算日期值有关(详细信息 here )。基本上,它首先计算该月的第一天,然后添加 N -1 天。因此,当我们要求非闰年的 2 月 29 日时,结果将是 2 月 1 日 + 28 天 = 3 月 1 日:

> new Date(2015, 1, 29)
< Sun Mar 01 2015 00:00:00 GMT+0100 (CET)

在闰年,2 月 1 日 + 28 = 2 月 29 日:

> new Date(2016, 1, 29)
< Mon Feb 29 2016 00:00:00 GMT+0100 (CET)

在上面的代码中,我将日期设置为 2 月 29 日,并查看是否发生了滚动。如果不是(月份仍然是 1,即二月),则这是闰年,否则为非闰年。

关于javascript 查找闰年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8175521/

相关文章:

javascript - 在 javascript 中,在一个函数中过滤和映射一个数组?

javascript - JSON.stringify() 数组与 Prototype.js 的奇怪之处

java - SimpleDateFormat 未正确解析毫秒

ios - iOS 中 UITextfield 的自动完成

javascript - JS中带有数组的多个if语句

javascript - ng-change 和自定义指令使范围变量在初始化时未定义

javascript - 使用 JavaScript 比较日期

javascript将日期和时间转换为特定格式

Flutter - TextField 的动态后缀文本?

ios - 输入 Int 的 iOS SwiftUI TextField 缺少占位符