Таймер обратного отсчета javascript не работает

Я наткнулся на этот кодовый код https://codepen.io/donovanh/pen/JWdyEm, и я пытался применить его к более старому таймеру обратного отсчета, который я использовал, потому что этот казался лучше ... Если я установил дату обратного отсчета на сегодняшний день, он все равно говорит, что осталось 30 дней.

Вот код, в котором он вычисляет разницу между датами.

function daysBetween( date1, date2 ) {
  //Get 1 day in milliseconds
  var one_day=1000*60*60*24;

  // Convert both dates to milliseconds
  var date1_ms = date1.getTime();
  var date2_ms = date2.getTime();

  // Calculate the difference in milliseconds
  var difference_ms = date2_ms - date1_ms;

  // Convert back to days and return
  return Math.round(difference_ms/one_day); 
}

console.log("Days to end of April = " +
  daysBetween(new Date(), new Date("2018-04-30")));

Я не могу понять, откуда берутся дополнительные дни, любая помощь будет оценена, спасибо

Предоставьте минимальный воспроизводимый пример. Какой вклад вы даете этой функции? Какого результата вы ожидаете? Какой результат вы получите?

Quentin 11.04.2018 13:33

как установить обратный отсчет до сегодняшнего дня? пожалуйста, добавьте еще объяснение

Muhammad Usman 11.04.2018 13:35

на вашем месте я бы создал для него простую скрипку js, чтобы помогать другим в их усилиях, чтобы помочь мне! Это простой случай, сделайте для него скрипку.

MKougiouris 11.04.2018 13:36

Я только что обновил ваш вопрос, включив в него работающий фрагмент, и просто рассчитал его до конца апреля, можете ли вы обновить, чтобы показать проблему, с которой вы столкнулись.

Keith 11.04.2018 13:43
1
4
48
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Месяцы начинаются с 0 до 11.

Конец апреля - это Date("2018-03-30"), а не Date("2018-04-30"), поэтому вы получаете дополнительные 30 или 31 день.

Ответ принят как подходящий

Я думаю, что ваша проблема связана с неправильным номером месяца в качестве аргумента Date.UTC. Согласно документам https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC, месяц - это число от 0 до 11. Если вы хотите вызвать функцию для сегодняшней даты, вы должны называть ее как new Date(2018, 3, 10, 12, 15).

Другие вопросы по теме