PDA

View Full Version : مشکل بدست آوردن تعداد روز بین دو تاریخ



abahrani
جمعه 15 شهریور 1392, 07:43 صبح
توابع زیر تعداد روز های بین دو تاریخ را بر می گردانند.مشکل من اینه که دو تابع با اینکه مقدار دهی تاریخ دوم متفاوت هست اما خروجی شون یک مقدار هست.به نظر شما مشکل چیه؟
function days_between1() {
var date1 = new Date(2013, 09, 23);
var date2 = new Date(2013, 09, 01);
var day = Math.abs((date2.getTime() - date1.getTime()) / (1000 * 60 * 60 * 24));
alert(day);


}




function days_between2() {
var date1 = new Date(2013, 09, 23);
var date2 = new Date(2013, 08, 31);
var day = Math.abs((date2.getTime() - date1.getTime()) / (1000 * 60 * 60 * 24));
alert(day);
}

mehdi.mousavi
جمعه 15 شهریور 1392, 08:39 صبح
سلام.
Index ماه ها از صفر شروع میشه، یعنی وقتی میگید:

var date2 = new Date(2013, 08, 31);

در واقع دارید به روز 31 ماه Sep. اشاره می کنید. از اونجاییکه ماه Sep 30 روزه، Date Constructor خودش بر اساس الگوریتمی
تصمیم میگیره که یک روز به تاریخ فوق اضافه کنه. (این الگوریتم رو اگر مایل بودید میتونید در Stackoverflow پیدا کنید).

موفق باشید.