当我有 2 月的时候,如何让下面的代码工作?目前它正在到达一天然后停止,然后再到达 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 +'/' + '';
}
}
原文由 Juan Almonte 发布,翻译遵循 CC BY-SA 4.0 许可协议
将 Date 对象 用于日期时间的东西更安全,例如
由于人们一直在问这究竟是如何工作的,所以它与 JS 如何从年月日计算日期值有关(详情请见 此处)。基本上,它首先计算该月的第一天,然后向其添加 N -1 天。所以当我们要求非闰年的 2 月 29 日时,结果将是 2 月 1 日 + 28 天 = 3 月 1 日:
在闰年,2 月 1 日 + 28 = 29 日:
在上面的代码中,我将日期设置为 2 月 29 日,然后查看是否发生了翻转。如果不是(月份仍为1,即二月),则为闰年,否则为非闰年。