我有一个旧的Web应用程序,其中使用Javascript来验证某些日期。用户通常使用两位数的年份,最近我发现它将00评估为1900而不是2000

if (new Date(tb[0].value) > new Date(tb[1].value)){
    alert('Starting date must come before the ending date');
    tb[0].focus();
    return false;
}

在第一个框中输入1/1/99,在第二个框中输入1/1/00会导致错误消息,指出开始日期必须早于结束日期,因为99的值为1999,而00的值为1900。

当然,用户可以使用4位数的年份来解决此问题,但是我仍然想知道如何使Javascript正确评估2位数的年份。

所以我的问题是,如何获取Java来将00评估为2000,而不是1900?

最佳答案

之所以这样做,是因为该语言是在1990年代创建的(并且很匆忙)。您可以使用getFullYear()setFullYear()以非愚蠢的方式处理年份。

我所做的是编写一些代码来检查年份值是否小于100,如果大于90(或类似情况,视情况而定),则假定它是在20世纪,否则假定是21世纪。

@Rachel没有办法告诉运行时库行为不同,至少没有任何标准化的方法。这就是日期代码的工作方式。

关于javascript - 为什么Javascript将2位数字的00年份计算为1900而不是2000?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8681534/

10-13 07:42