function get_date_diff1($from,$to,$remove_dates,$check=0){
$cDays = dateDiff($from,$to);
$tmp=$from;
$i=0;$o=0;$p=0;
while($i<$cDays){
if(in_array($tmp,$remove_dates)){
$p=$p+1;
}
$tmp=strtotime($tmp)+(($i>0)?86400:0);
$twd = strtolower(date("l",$tmp));
if($twd=='sunday' || $twd=='saturday') $o=$o+1;
$tmp = date("Y-m-d",$tmp);
$i=$i+1;
}
if($check==0){
return abs($cDays-$o-$p);
}else{
return abs($cDays-$p);
}
}
echo get_date_diff1("14 April, 2014","16 April, 2014",array('14 April, 2014'));
对不起我的语法错误。我想创建一个函数,它删除三个日期之间的FROM或TO日期,并给出截止日期的结果。在此功能中,当我删除2014年4月14日,然后功能工作正常并给出截止日期(结果= 2(我想要的))但是当我删除2014年4月15日然后功能给出三个截止日期(结果= 3) )虽然功能应该返回两个日期(结果= 2)有人可以帮助我,我错了吗?在此先感谢
答案 0 :(得分:1)
您传递的日期为14 April, 2014
格式,对应于date()
格式代码d F, Y
。然后,您在代码中以Y-m-d
格式在内部构建日期。这意味着您的in_array()
电话正在尝试
if ('14 April, 2014' == '2014-04-14`) { ... }
这绝不是真的。你和我知道他们的日期是一样的。 PHP不知道他们是约会对象。它们只是字符串,而字符串则不相同。