В настоящее время я делаю сайт, который предлагает доставку только с понедельника по пятницу.
Я пытаюсь выяснить, как добавить дату доставки. Например:
«Закажите сегодня, и вы можете ожидать доставки по DD / MM / YY»
Вышеуказанная дата потребовала бы исключить любые выходные
Так что в основном при заказе сегодня день доставки составляет 4 рабочих дня, за исключением выходных.
Попробуйте эту логику. Вы можете изменить его в соответствии с вашими потребностями.
$curdate = '2014-07-19'; $mydate=getdate(strtotime($curdate)); switch($mydate['wday']){ case 0: // sun case 1: // mon $days = 4; break; case 2: case 3: case 4: case 5: $days = 6; break; case 6: // sat $days = 5; break; } echo date('Ym-d', strtotime("$curdate +$days days"));
Попробуй это:
<?php echo strftime("%e/%m/%y", strtotime("+4 weekday")) ?>
Он создает временную строку «4 будних дня», отформатированную как DD / MM / YY.
Относительные форматы дат, которые можно использовать с strtotime
описаны здесь: http://php.net/manual/en/datetime.formats.relative.php
Вот именно то, что вы хотите
$workdays = array(); $type = CAL_GREGORIAN; $month = date('n'); // Month ID, 1 through to 12. $year = date('Y'); // Year in 4 digit 2009 format. $day_count = cal_days_in_month($type, $month, $year); // Get the amount of days for ($i = 1; $i <= $day_count; $i++) { $date = $year.'/'.$month.'/'.$i; //format date $get_name = date('l', strtotime($date)); //get week day $day_name = substr($get_name, 0, 3); // Trim day name to 3 chars //if not a weekend add day to array if($day_name != 'Sun' && $day_name != 'Sat'){ $workdays[] = $i; } }
https://daveismyname.com/show-working-days-of-a-month-excluding-weekends-with-php-bp