function daysTo(from, to){
// to and from may be
// strings in the form'yyyy-mm-dd' or 'yyyy-m-d'
// split the strings on dashes and possible leading 0,
// to avoid '08' becoming octal '10'
to= to.split(/\-0?/);
to= new Date(+to[0], to[1]-1, +to[2]);
from= from.split(/\-0?/);
from= new Date(+from[0], from[1]-1, +from[2]);
return Math.round((to-from)/86400000));
}
daysTo ('2010-9-10', '2011-9-10') // or daysTo ('2010-09-10', '2011-09-10')
/ * возвращаемое значение: (число)
365
* /
Округление результата сглаживает смещения летнего времени.
Если вы создадите новую дату без указания времени, она будет установлена в полночь по местному времени.
Вычитание объектов даты преобразует их в миллисекунды - вам не нужно использовать getTime ().