Количество дней в месяце, рассчитанных таким образом:
var start = new Date(d.getFullYear(),d.getMonth(),1);
var end = new Date(d.getFullYear(),d.getMonth()+1,1);
var daysInCurMonth = parseInt((end-start)/(1000*60*60*24));
d
является фактической датой, для марта она содержит значение (из консоли FireBug):
Date {Thu Mar 01 2012 00:00:00 GMT+0200}
parseInt((end-start)/(1000*60*60*24))
результаты 30 , но
(end-start)/(1000*60*60*24)
результаты 30,958333333333332
Я ожидаю округления до 31 при использовании функции parseInt()
.
Math.round((end-start)/(1000*60*60*24))
результаты 31 , что верно для марта 2012 года.
Можно ли полагаться на Math.round()
при работе с датами?