【发布时间】:2011-12-31 19:26:05
【问题描述】:
当我有一个月的 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 +'/' + '';
}
}
【问题讨论】:
-
“停止”如何?有错误吗?
-
它从不评估年份以查看是否是闰年它直接进入 field.focus 和 field.value 是否是闰年
-
您的条件看起来有点奇怪 - 因为它们现在是现在编写的,您只检查
day的值是否为 29 或更大(基于day == 29和day > 28if 子句)。我假设您打算写day <= 28,但如果是这种情况,您可以删除第二个else if子句并直接使用else子句。在闰年条款中添加一组额外的括号也可能更安全:if (year % 4 != 0 || (year % 100 == 0 && year % 400 != 0)) -
您可能需要展示一些有关如何设置这些变量的代码。如果您使用的是 Date 对象,请记住它使用从零开始的月份。
标签: javascript date textfield leap-year