不允许转换为未来年份的时刻.js

Don't allow convert to future year moment.js

本文关键字:时刻 js 转换 未来 不允许      更新时间:2023-09-26

我使用moment.js在我的web应用程序中处理我的日期时间值。我使用以下格式:DD.MM.YYYY例如29.09.2016。现在我有一些输入字段,我可以在其中输入一个人的出生日期。当我在62和99之间输入一个短年份时,它会像这样转换它:input = 29.09.82,它在按tab键后将其转换为29.09.2082(将20放在82之前)。当我在00和62之间写一个短年份时,将其转换为如下示例:input = 29.09.55将转换为29.09.1955(将19放在55之前)。所以第一个范围将被转换为21世纪的一年,第二个范围将被转换为20世纪的一年(这似乎是默认的,我不知道为什么)。现在我想防止转换成一年,这是在未来(所以不超过2016年,只有2016年,短年是16)。我该怎么做呢?现在我有这样的内容:

if(value.isValid() && isDayOfBirth) {
    value.format(myFormat);
}

有办法做到这一点或检查它吗?我在http://momentjs.com/docs/里什么都没找到。谢谢。

应该可以。取当前年份,并检查已解析的年份是否大于当前年份。如果是,你减去100年(带你回到20世纪)。

var now = moment(),
    year = now.year(); //Get current year
if (parsedDate.year() > year) {
  parsedDate.subtract(100, "year");
}