2012-08-14 7 views
2

현재 온라인 구독 응용 프로그램을 개발 중입니다. 사용자가 구독 할 일 수를 선택한 다음 시작일을 선택하는 부분에서 몇 가지 문제가 있습니다. PHP 응용 프로그램은 주말을 제외하고 종료일을 계산할 수 있어야합니다.X 일을 날짜 추가, 주말 제외

<form method="post"> 
    <input name="startdate" type="text" /> 
    <input name="numberofdays" type="text" /> 
</form> 

누군가가이 문제를 해결할 수 있습니까?

+1

당신이 지금까지해야합니까? – ernie

답변

10

startdate이 사용할 수있는 Y-m-D를 사용하여 전송하지만 가정 방법에 따라 DateTime

예 :

<?php 

    $_POST['startdate'] = '2012-08-14'; 
    $_POST['numberofdays'] = 10; 

    $d = new DateTime($_POST['startdate']); 
    $t = $d->getTimestamp(); 

    // loop for X days 
    for($i=0; $i<$_POST['numberofdays']; $i++){ 

     // add 1 day to timestamp 
     $addDay = 86400; 

     // get what day it is next day 
     $nextDay = date('w', ($t+$addDay)); 

     // if it's Saturday or Sunday get $i-1 
     if($nextDay == 0 || $nextDay == 6) { 
      $i--; 
     } 

     // modify timestamp, add 1 day 
     $t = $t+$addDay; 
    } 

    $d->setTimestamp($t); 

    echo $d->format('Y-m-d'). "\n"; 

?> 
+3

strtotime ('+ 1day', $ t)를 사용하여 매직 넘버를 제거 할 수 있습니다. –

관련 문제