2016-08-31 3 views
5
$('#dob').datepicker({ 
    onSelect: function(value, ui) { 
     var today = new Date(), 
      dob = new Date(value), 
      age = new Date(today - dob).getFullYear() - 1970; 

     $('#age').text(age); 
    }, 
    maxDate: '+0d', 
    yearRange: '1920:2010', 
    changeMonth: true, 
    changeYear: true 
}); 

Я использую этот код, чтобы получить текущий возраст, когда значение изменения даты.получить текущий возраст, когда datepicker изменить jquery

Я просто смущен, что 1970 означает в этом age = new Date(today - dob).getFullYear() - 1970; Мне нужно его изменить, чтобы сделать его динамичным?

ответ

2

требуется Вычитание 1970 потому, что при предоставлении целочисленного значения в Date() конструктора (как это имеет место для new Date(today - dob)) предполагаются, что вы предоставляете количество миллисекунд после 1-го января 1970 эпохи.

Поэтому вам нужно вычесть 1970 из значения года, полученного в результате расчета DoB, чтобы получить возраст пользователя.

Ваш код является абсолютно верным. Вам не придется менять расчет.

1

Ваш плагин datepicker использует значения временных меток, которые представляют секунды от эпохи Unix 1 января 1970 года в UTC. Поэтому вы должны рассчитать годы, чем вычесть начальный год.

Итак, ответ: Нет, вам ничего не нужно менять, возраст, который вы получаете, уже динамичен.

Смежные вопросы