2016-08-17 3 views
-1

Я пытаюсь добиться того, чтобы число должно округляться до ближайшего целого возраста (т.е. если 64 & 3 месяца = 64, если 64 & 9mths = 65).Преобразование года по месяцам с датами

Это мой код:

var dt = '15/11/2015'; 
    var roundedAge = Math.round(moment().diff(moment(dt, 'DD/MM/YYYY'), 'years', true)); 
    console.log('result:' + Math.round(roundedAge - 0.25)); 

Кажется, не работает для меня.

+0

Показанный код не использует переменную 'dt', поэтому расчет неправильный, прежде чем он начнет работать. – nnnnnn

+0

Извините, что я сделал редактирование сейчас, чтобы исправить его – aditya063

ответ

0

Вам просто нужно округлить Years, не нужно вычесть 0.4

var yrs = moment().add(64 * 12 + 3, "months").diff(moment(), 'years', true); 
 
console.log('result:' + Math.round(yrs)); 
 

 
var yrs2 = moment().add(64 * 12 + 9, "months").diff(moment(), 'years', true); 
 
console.log('result:' + Math.round(yrs2));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment.js"></script>

+0

Это не будет работать. это должно быть как - если 64 и 3 месяца = 64, если 64 и 9mths = 6 – aditya063

+0

@ aditya063, см. обновленный ответ, ценно установленный в вашем примере – Satpal

0

Это, как я установил его.

var floatYears = moment().diff(moment($("#dtDOB").val(), 'DD/MM/YYYY'), 'years', true); 
    var intYears = Math.round(floatYears - 0.25); // Since 0.75 = 9/12 months so shifting the offset. 
    $('#calcAge').val(intYears + ' years'); 
Смежные вопросы