2012-08-14 97 views
2

我目前正在開發一個在線訂閱應用程序。我在用戶選擇要訂閱的天數然後選擇開始日期的部分遇到一些挑戰。 PHP應用程序應該能夠計算結束日期,不包括週末。添加X天迄今,不包括週末

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

有人可以幫助我嗎?

+1

你有什麼這麼遠嗎? – ernie 2012-08-14 18:43:00

回答

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)去除幻數。 – 2012-08-14 21:51:50

相關問題