Показать сообщение отдельно
  #13 (permalink)  
Старый 30.05.2014, 15:52
Новичок на форуме
Отправить личное сообщение для siryouzheg Посмотреть профиль Найти все сообщения от siryouzheg
 
Регистрация: 14.04.2014
Сообщений: 2

Здесь не учтено следующее:
Например

var date1 = '01/06/1988';
var date2 = '01/01/2008';
var date  = new Date();

date.setTime(Date.parse(date1));
var year1 = date.getFullYear();

date.setTime(Date.parse(date2));
var year2 = date.getFullYear();

var age = year2 - year1;
alert('Your age: '+ age); // ответ 10, а на деле 9.5 лет


Надо учесть месяц и так же день месяца

date.setTime(Date.parse(date1));
var year1 = date.getFullYear(), month1 = date.getMonth(), day1 = date.getDate();

date.setTime(Date.parse(date2));
var year2 = date.getFullYear(), month2 = date.getMonth(), day2 = date.getDate();

var age = year2 - year1;
if ((month1 > month2) || // месяц рождения еще не наступил
    ((month1 == month2) && (day1 > day2))) { // месяц наступил, но дата еще на подошла
     age --; // уменьшим возраст в полных лет
}

alert('Your age: '+ age); // ответ 9 ПОЛНЫХ лет
Ответить с цитированием