Нужно использовать javascript, чтобы сообщить мне количество прошедших дней, месяц и год с текущей даты до указанной даты - PullRequest
0 голосов
/ 08 октября 2019

У меня есть, поэтому будет отображаться дата с годами, месяцами и днями. Но это отображается, когда я вставляю свой день рождения как 27 лет, 329 месяцев и 10299 дней. Мне нужно, чтобы отображались месяцы в формате 12 месяцев и дни в формате 31 день.

`

    <p>
      <h2>Pick A Date!(dd/mm/yyyy</h2>
        <center><input id="date">
        <button onclick="handleDateChanged()">Calculate</button></center>
    </p>

    <p>
       <h2>It's been since: <span id="result"></span></h2>
    </p>

    function handleDateChanged() {
    var data = document.getElementById("date").value;
            var dateParts = data.split("/");

            var pickedDate = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]); 
            var currentDate = new Date();

            console.log(pickedDate);
            console.log(currentDate);

            var diff = Math.floor(currentDate.getTime() - pickedDate.getTime());
            var day = 1000 * 60 * 60 * 24;

            var days = Math.floor(diff/day);
            var months = Math.floor(days/31);
            var years = Math.floor(months/12);

            document.getElementById("result").innerHTML = years + ' years, ' + months + ' months, ' + days + ' days'
    }

`

1 Ответ

0 голосов
/ 08 октября 2019

После того, как вы вычислите разницу в годах, вам нужно изменить объект выбранной даты, чтобы иметь тот же год. Таким образом, вы можете рассчитать месяцы / дни.

<script>
function handleDateChanged() {
    var data = document.getElementById("date").value;
            var dateParts = data.split("/");

            var pickedDate = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]); 
            var currentDate = new Date();

            var years = currentDate.getYear() - pickedDate.getYear();
            pickedDate.setYear(pickedDate.getFullYear() + years);

            console.log(pickedDate);

            var diff = Math.floor(currentDate.getTime() - pickedDate.getTime());
            var day = 1000 * 60 * 60 * 24;

            var days = Math.floor(diff/day);
            var months = Math.floor(days/31);
       //     var years = Math.floor(months/12);

            document.getElementById("result").innerHTML = years + ' years, ' + months + ' months, ' + days + ' days'
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...