【发布时间】:2015-08-27 09:09:29
【问题描述】:
我已经在我的 js 文件中包含了给定的代码
$( '.dateDisable' ).change(function() {
calculateDays();
});
function calculateDays() {
var first = new Date( $( '#start_date' ).val() ),
last = new Date( $( '#end_date' ).val() ),
daysDiff = leaveCalculation( first,last);
}
function leaveCalculation( d1, d2 ) {
alert(gon.holiday) // 2015-08-28,2015-09-25,2016-08-31,2016-08-07,2015-08-13,2016-08-29,2016-01-07,2015-09-08
var weeks, dateDiff, weekDay1, weekDay2;
if ( d2 < d1 ) return -1;
weekDay1 = d1.getDay(),
weekDay2 = d2.getDay();
weeks = Math.floor( ( d2.getTime() - d1.getTime() ) / 604800000 );
if ( weekDay1 <= weekDay2 )
dateDiff = ( weeks * 5 ) + ( weekDay2 - weekDay1 );
else
dateDiff = ( ( weeks + 1 ) * 5 ) - ( weekDay1 - weekDay2 );
return ( dateDiff + 1 );
}
我想计算天数。
如果我选择了日期“2015 年 8 月 27 日” - “2015 年 8 月 31 日”
它会计算 daysDiff = 3 但我想取出 daysDiff 就好像 2015 年 8 月 28 日有假期一样,因为我在 gon.holiday 中获取假期禁用日期。
在我的情况下,那将是
2015-08-28,2015-09-25,2016-08-31,2016-08-07,2015-08-13,2016-08-29,2016-01-07,2015-09-08
因此,如果我选择了日期“2015 年 8 月 27 日” - “2015 年 8 月 31 日”,那么它会给我 daysDiff 作为 2 因为 28, 29 ,30已经放假了。我也想排除周末
我该怎么做?
【问题讨论】:
-
gon.holiday是数组还是纯字符串? -
@dinshaw raje:dDate2 和 dDate1 是什么?顺便说一句,您可以使用循环与假期stackoverflow.com/questions/4428327/… 进行比较,然后从 diffDays 中减去它们
-
它不是像这样简单地获取的数组 2015-08-28,2015-09-25,2016-08-31,2016-08-07,2015-08-13,2016-08 -29,2016-01-07,2015-09-08
标签: javascript jquery date datepicker