Нужно определить точный возраст пользователя. поэтому сначала перевожу все в миллисекунды. Но показывает неверный год и возраст соответственно. В чем ошибка?
const today = +new Date();
const birthday = +new Date('01.02.1994');
const diff = today - birthday;
const obj = new Date(diff);
const age = new Date().getFullYear() - obj.getFullYear();
В javascript объекта Date при преобразовании в Number всегда возвращает UNIX timestamp в миллисекундах (прошедшее кол-во миллисекунда с 1970 года).
Ваш diff это количество миллисекунд прошедшие со дня рождения до текущего времени (не забываем про високосные года).
Затем по этому diff вы получаете дату, т.е. к 1970 году прибавляем diff миллисекунд и получаем тыкву у которой берем год и вычитаем его из текущего года.
Для корректного вычисления возраста лучше работать с количеством дней до текущей даты и количеством дней до дня рождения, а что бы избежать проблем с високосными годами нужно приравнять любой месяц к 31 дням. В итоге получаем примерно такое
const today = new Date();
const birthday = new Date("01.02.1994");
const todayD = (today.getFullYear()*12 + today.getMonth())*31+today.getDate()-1;
const birthdayD = (birthday.getFullYear()*12 + birthday.getMonth())*31+birthday.getDate()-1;
const age = (todayD - birthdayD)/31/12;
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Не могу понять в чем проблемаНе могу вывести объект - пишет undefined
Есть 2 формы на одной странице , есть много повторяющихся пунктов , можно как то на JS сделать , что бы одинаковые заполнялись одновременно или...
Доброго времени сутокУже долгое время я пытаюсь запустить скрипт, перепробовал много разных способов, но всё напрасно