Решение от Jeff B неверно из-за перехода на летнее время.Если начальная дата, скажем, 31 октября, а конечная дата - 20 декабря, промежуток времени, фактически прошедший между этими двумя значениями времени, составляет 50 дней плюс 1 час, а не 50 дней.Это особенно плохо, если ваша программа не заботится о времени суток и устанавливает все время в полночь - в этом случае все вычисления будут отключены на один за всю зиму.
Часть правильного путивычитать даты - значит создавать новый объект Date для каждого времени, а затем использовать массив с числом дней в каждом месяце, чтобы вычислить, сколько дней фактически прошло.
Но, чтобы еще хужедаты, когда Европа меняет часы, отличаются от дат, когда часы меняются в Нью-Йорке.Следовательно, одного часового пояса недостаточно, чтобы определить, сколько дней прошло;местоположение также необходимо.
Переход на летнее время значительно усложняет обработку данных.На моем веб-сайте функция, необходимая для точного вычисления пройденного дня, составляет почти сто строк.Фактическая сложность зависит от того, являются ли вычисления на стороне клиента или на стороне сервера, или на обоих, и на том, кто просматривает данные.