Рассчитайте дату с сегодняшнего дня и измените цвет текста, например, через 7 дней

#javascript

Вопрос:

Я хочу написать javascript, который будет вычислять возраст с даты отправки до сегодняшнего дня, и если элементу более 5 дней, он изменит цвет текста на желтый и красный, если ему более 10 дней.

 <p>text<p>
<input type="date" id="date" name="date">
<input type="submit" value="Submit"> 

Комментарии:

1. Всем не терпится просто решить эту проблему, но идея в том, что сначала вы пытаетесь и задаете вопросы, почему это не работает, а затем мы помогаем. По крайней мере, объясните, какова, по вашему мнению, логика для этого.

2. Использование Moment js должно решить вашу проблему. momentjscom.readthedocs.io/en/latest/moment/04-displaying/… действительно должно помочь.

3. Спасибо, ребята. Я все еще изучаю javascript, и у меня есть эта таблица в excel, которую мы используем для расчета дней, и я думал о том, как она будет выглядеть в javascript. будет ли это чем-то, что я могу понять на своем уровне, или это так сложно, я понятия не имею на данный момент, но я проверяю ресурсы, которые могут привести меня к решению этой проблемы. Мы будем очень признательны за любую помощь.

Ответ №1:

 <html>
<body>
 <p>Your Age Calc<p>
 <form method="GET">
   <input type="date" id="date" name="date">
   <button type="button" id="mybutton">Submit</button>
 </form>
 <div id="result"></div>
<script type="application/javascript">

function showResult() {
 let result =  document.getElementById("result")
 let date = document.getElementById("date");
 if (date.value === "" ) {
  result.innerHTML = "Please input a correct date, 😅!";
  } else {
    let birthday = new Date (`${date.value}`)
    let ageDifMs = Date.now() - birthday.getTime();
    let num_days = ((ageDifMs % 31536000000) % 2628000000)/86400000;
    num_days > 10 ? result.style.color = "green" : result.style.color = "blue"
    result.innerHTML = "😆 Your age(days), "   num_days.toFixed(1);
  }
}

document.getElementById("mybutton").onclick = showResu<

</script>
</body>
</html>