Проблема с условиями для вывода разници между датами

296
19 апреля 2017, 13:16

Пользователь вводит две даты в формате "December 13, 2014 00:00:00" а в ответ получает "прошло 2 года, 1 месяц 7 дней ...", вот никак не могу понять как сделать вывод в формате который указан выше.Простите за код, я новичок.

function timeFromFirst(form) { 
  var first = new Date(form.firstDate.value); 
  var second = new Date(form.secondDate.value); 
  var year = second.getFullYear() - first.getFullYear(); 
  var month = second.getMonth() - first.getMonth(); 
  var day = (second.getDate() + 1) - (first.getDate() + 1); 
  var hours = (second.getHours() + 1) - (first.getHours() + 1); 
  var minutes = (second.getMinutes() + 1) - (first.getMinutes() + 1); 
 
}
<form> 
  <p> 
    <h3>Input date like "October 13, 2014 11:13:00"</h3> 
    <input type="datetime-local" name="firstDate"> 
    <input type="datetime-local" name="secondDate"> 
  </p> 
  <p> 
    <input type="button" value="Click" onclick="timeFromFirst(form)"> 
  </p> 
</form>

Answer 1

Предлагаю для саморазвития сделать ручками:

1 не високосный год - 365 дней.

1 високосный год - 366 дней.

Как отличить високосный от не високосного?

Високосные года делятся нацело на 4. Однако из этого правила есть исключение: столетия, которые не делятся нацело на 400, високосными не являются.

Посмотрев на календарь можно узнать, сколько в каком месяце дней.

Код приводить не стану, ибо уверен, что при желании его можно найти и так.

READ ALSO
отправка jsona после 2 нажатия на кнопку

отправка jsona после 2 нажатия на кнопку

Подскажите почему отправка jsona происходит после второго нажатия на кнопкуКод функции:

191
Отправка массива через ajax

Отправка массива через ajax

dataMessage посылает данные по очереди в виде pc: "50" mouse: "10" keyboard: "20"

221
Таймер обратного отсчета идет в минус

Таймер обратного отсчета идет в минус

Как сделать так что бы после истечения счетчика он начинал заново считать время?

286