2012-08-14 94 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

相关问题