2017-03-20 72 views
0

计算数2日期间的天我有这个非常简单的代码,计算给定的时间戳之间的天数:没有周末

$timestamp1 = strtotime("2017-01-01"); 
$timestamp2 = strtotime("2017-01-05"); 

$timeDiff = abs($timestamp1 - $timestamp2); 
$numberDays = $timeDiff/86400; 
$numberDays = intval($numberDays); 

它可以正常使用,但我想知道是否有计算中排除周末的一种方法。

我已经在网上看了一下,发现了一些替代选项,但是比上面有更多的代码,所以我问是否有像上面例子那样的最小代码的选项?

+0

这可能会帮助你http://stackoverflow.com/questions/12365461/day-difference-without-weekends。 –

回答

0

这是我用:

function createDateRangeArray($strDateFrom,$strDateTo) 
{ 
    $aryRange=array(); 

    $iDateFrom=mktime(1,0,0,substr($strDateFrom,5,2),  substr($strDateFrom,8,2),substr($strDateFrom,0,4)); 
    $iDateTo=mktime(1,0,0,substr($strDateTo,5,2),  substr($strDateTo,8,2),substr($strDateTo,0,4)); 

    if ($iDateTo>=$iDateFrom) 
    { 
     if(date("w", $iDateFrom) != 0 and date("w", $iDateFrom) != 6) { 
      array_push($aryRange,date('Y-m-d',$iDateFrom)); 
     } 
     while ($iDateFrom<$iDateTo) 
     { 
      $iDateFrom+=86400; // add 24 hours 
      if(date("w", $iDateFrom) != 0 and date("w", $iDateFrom) != 6) { 
       array_push($aryRange,date('Y-m-d',$iDateFrom)); 
      } 
     } 
    } 
    return $aryRange; 
}