我想为给定的任务定义SLA,不包括PHP的周末,假日和非工作时间。工作日周一至周五和工作时间上午9点至下午5点。 如何定义SLA并计算在PHP中完成任务所需的时间?
答案 0 :(得分:0)
编辑问题: 这里是我试过的代码,我可以排除周末和假期。但是也希望排除非工作时间
function _getBusinessDayOfMonth($ startDate,$ businessDays,$ holidays) {
$date = strtotime($startDate);
$i = 0;
while($i < $businessDays)
{
//get number of week day (1-7)
$day = date('N',$date);
//get just Y-m-d date
$dateYmd = date("Y-m-d",$date);
$datehis=date("H:i:s",$date);
if($day < 6 && !in_array($dateYmd, $holidays)){
$i++;
}
$date = strtotime($dateYmd . ' +1 day'.$datehis);
}
$day = date('N',$date);
$d=date("Y-m-d",$date);
if( $day==7||in_array($d, $holidays))
{
$date = strtotime($d . ' +1 day'.$datehis);
}
elseif($day==6)
{
$date = strtotime($d . ' +2 day'.$datehis);
}
//return date('Y-m-d H:i:s',$date);
return date('Y-m-d H:i:s',$date);
}