Intereting Posts
Выполнение Javascript перед получением результата при вызове ajax Администратор сущности Doctrine, вызывающий разрыв страницы SQL Select Присоединиться к лимиту в Laravel / PHP Zip Stream в PHP Как исправить «Неподдерживаемый пост-запрос» при публикации на странице поклонника FB? opencart php без использования функции «информация» Передача значений в MySQL IN в подготовленном заявлении PDO? Карты SoapServer функционируют взаимозависимо, когда сообщения wsdl имеют одинаковое имя части Каков наилучший способ проверки дублирующих полей TEXT в MYSQL / PHP? HTTP-файл передачи с сервера на сервер Динамически отправлять сообщение WordPress Странная 5-секундная пауза с интерфейсом командной строки PHP (связанная с расширением mysql / mysqli) Проблемы UTF-8 при чтении CSV-файла с помощью fgetcsv Расширение валидатора Laravel несколько раз PHP: вызов хранимой процедуры MySQL с параметрами INPUT AND OUTPUT (НЕ «INOUT»)

Добавить X дней до даты, исключая выходные

В настоящее время я разрабатываю онлайн-подписку. У меня возникают некоторые проблемы со стороны, когда пользователь будет выбирать количество дней для подписки, а затем дату начала. Затем PHP-приложение должно иметь возможность вычислять конечную дату, исключая выходные.

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

Кто-нибудь может мне помочь?

Solutions Collecting From Web of "Добавить X дней до даты, исключая выходные"

зависит от того, как startdate , но если вы используете Ymd, вы можете использовать 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( 'Ymd' ). "\n"; ?>