Как рассчитать возраст из DOB, если месяц недействителен? - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть поле даты, которое принимает, если month равно unknown . И я вычисляю age из введенной даты и текущей даты и времени.

var birthDate = new Date("12 UNK 1995");
var now = new Date();
var age = now.getFullYear() - birthDate.getFullYear();

document.write("Your Age is: " + age);

Если прогон это выдает мне NaN ошибка. Я думаю, что это из-за этого неверного формата даты.

Есть ли способ, которым я могу вычислить age, даже если month равен unknown на основании year только в любом формате даты

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

Если месяц неизвестен, то обычным способом программно установить его на середину года - на июль. Я знаю эту проблему в Индии - некоторые люди иногда не знают дату своего рождения.

Например, как следует:

var month = "UNK"; // TODO: here is your code to get the month name from field

month = month == "UNK" ? "JUL" : month;

var birthDate = new Date("12 " + month + " 1995");
var now = new Date();
var age = now.getFullYear() - birthDate.getFullYear();

document.write("Your Age is: " + age);

Но учтите, что ваши расчеты не совсем верны, потому что вы не рассчитываете с полной датой (день, месяц, год, час, минуты).

Мое предложение

Но я хотел бы предложить использовать новый тип поля ввода HTML5 date (см. Эту ссылку), который выглядит следующим образом (наведите указатель мыши на это поле) :

<input name="birthdate" type="date" required>

И все пользователи должны поставить эту дату под свою ответственность. В этом случае они должны выбрать одну дату, и у вас не будет ответственности за это.

0 голосов
/ 08 сентября 2018

У вас уже есть год в строке, поэтому извлеките его из строки и затем вычтите из года.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...