2013-02-07 67 views
2

我只想知道如何获得除周末外的其余日子。我试着减去两个日期,但我似乎找不到任何解决方案来消除周末。以及这是我的代码:获取剩余日期,不包括周末

  $date_registered = date('Y-m-d'); 
      $date_planned = $_POST['start_date']; 
      $dueDate = $date_registered; 
      $numDays = 3; 
      $counter = 1; 
      while ($counter <= $numDays) { 

       $dueDate = date("Y-m-d", strtotime(date("Y-m-d", strtotime($dueDate)) . " +1 day")); 
       $dayOfTheWeek = date("l",strtotime($dueDate)); 

      if ($dayOfTheWeek == "Saturday" || $dayOfTheWeek == "Sunday") { 
        continue; 
       }else { 
        $counter++; 
       } 

      } 
      echo $date_registered.'<br>'; 
      echo $date_planned.'<br>'; 
      //echo $dueDate; 
      $remaining_days = strtotime($date_registered) - strtotime($date_planned); 
      echo $remaining_days/86400; 

我没有任何想法如何排除周末。我希望你能帮助我。

回答

4

试试这个

$date = date('Y-m-d'); 
$total_days_left = (strtotime($end_date) - strtotime($current_date))/(60 * 60 * 24); 
while (strtotime($date) <= strtotime($end_date)) { 
    $timestamp = strtotime($date); 
    $day = date('D', $timestamp); 

    if($day=='Sat' || $day=='Sun') { 
    $count++ ; 
    } 
    $date = date ("Y-m-d", strtotime("+1 day", strtotime($date))); 
} 

让我知道,如果你面对的任何问题。伯爵将提供这两天之间的星期结束日数。从此,您可以轻松计算剩余的一天。

$total_day_left_excluding_weekends = $total_days_left - $count; 

官方PHP网站参阅datestrtotime

+0

工作与否? – Deep123

+0

以及它的工作。我似乎无法正确得到剩余的日子 – arukiri123

+0

你现在得到了吗?还是还没有? – Deep123

0
$time = $sTime = START_TIMESTAMP; 
$eTime = END_TIMESTAMP; 
$count = 0; 

while(date('w', $time) != 0) { 
    $time += 86400; 
} 

while($time < $eTime) { 
    $count++; 
    $time += 7 * 86400; 
} 
+0

1天!= 24小时,1天!= 86400秒,请改用strtotime()! – HamZa

相关问题