Возраст от Даты рождения с помощью JQuery

Используйте

 mItems.set(position, newItem);

вместо

 mItems.add(position, newItem);

, потому что метод .set заменит ваши данные на определенное положение.

20
задан Crescent Fresh 18 March 2009 в 16:16
поделиться

5 ответов

Вы могли бы найти, что открытый исходный код библиотека Datejs был полезен. Конкретно addYears функция.

var dob = Date.parse($(this).text());
if (dob.addYears(18) < Date.today())
{
    $(this).text("Under 18");
}
else
{
    $(this).text(" Over 18");
}

более кратким способом:

$(this).text(
    Date.parse($(this).text()).addYears(18) < Date.today() ?
    "Under 18" :
    " Over 18"
)
25
ответ дан 30 November 2019 в 00:01
поделиться
$(this).text(((new Date().getFullYear()-Date.parts($(this).text()))>=18)?"Over 18":"Under 18");

Лучше?: D

1
ответ дан 30 November 2019 в 00:01
поделиться

Можно удалить отдельную переменную для DOB и выйти из строя если оператор. Ниже кода входит в 165 символах:

var check = new Date();
check.setFullYear(check.getFullYear() - 18);
$(this).text((new Date("3/6/2009").getTime() - check.getTime() < 0)?"Under 18":"Over 18");

Это все еще сохранит логику, должен был иметь дело с високосными годами.

3
ответ дан 30 November 2019 в 00:01
поделиться

Вы могли использовать объект Даты. Это возвратит миллисекунды между этими двумя датами. Через год существует 31 556 952 000 миллисекунд.

function dateDiff(var now, var dob)
{
    return now.getTime() - dob.getTime();
}
0
ответ дан 30 November 2019 в 00:01
поделиться
Date.prototype.age=function(at){
    var value = new Date(this.getTime());
    var age = at.getFullYear() - value.getFullYear();
    value = value.setFullYear(at.getFullYear());
    if (at < value) --age;
    return age;
};

var dob = new Date(Date.parse($(this).text()));

if(dob.age(new Date()) < 18)
{
    $(this).text("Under 18");
}
else
{
    $(this).text(" Over 18");
}
9
ответ дан 30 November 2019 в 00:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: