Возможно, автору платят во дворе, например, чтобы преобразовать трехбуквенную аббревиатуру месяца в число для даты JS:
function convertMonthToNumber(mon) {
var months = {jan:0, feb:1, mar:2, apr:3, may:4, jun:5,
jul:6, aug:7, sep:8, oct:9, nov:10, dec:11};
return months[mon.toLowerCase()];
}
заменяет более 70 строк кода выше.1005 * Если вы публикуете формат строк даты, «разница в днях» может быть предоставлена очень просто.Вероятно, он должен делиться не только на 8,64e7, так как летнее время может помешать.В любом случае, похоже, что ваша проблема с введенной датой, а не с фактическим расчетом.
Следующая функция вернет разницу в днях с двумя объектами даты.
function getDaysBetweenDates(d0, d1) {
var msPerDay = 8.64e7;
// Copy dates so don't mess them up
var x0 = new Date(d0);
var x1 = new Date(d1);
// Set to noon - avoid time errors
x0.setHours(12,0,0);
x1.setHours(12,0,0);
// Round to remove daylight saving errors
return Math.round( (x1 - x0) / msPerDay );
}