Обратите внимание, что вы можете сложить case
совпадений, которые делают то же самое:
switch ($today) {
case 'Mon':
case 'Tue':
case 'Wed':
// code here
break;
}
Но вам лучше всего создать небольшой массив, который содержит значения, необходимые для дней, а затем посмотреть сегодняшнее значение, используя имя дня в качестве индекса массива:
$leadtimes = [
'Mon' => [1, 2], // first value is for before 16:00, second is for after
'Tue' => [1, 2],
'Wed' => [1, 2],
'Thu' => [1, 4],
'Fri' => [4, 5],
'Sat' => [4, 4],
'Sun' => [3, 3],
];
Тогда код для расчета времени выполнения заказа - всего одна строка:
$leadtime = $leadtimes[date('D')][date('H') < 16 ? 0 : 1];
Затем подключите его к выходу, как предыдущий:
echo
"<p>For Delivery on <strong> " .
date('D jS', strtotime("$Date + $leadtime days")) .
"</strong><p>";
Теперь, когда вы хотите изменить время выполнения, код для редактирования отсутствует, просто отрегулируйте значение в массиве.
И так как я давно занимался любым гольф-кодом, вот все в одной строке:
echo date('D jS',strtotime('+'.['Mon'=>[1,2],'Tue'=>[1,2],'Wed'=>[1,2],'Thu'=>[1,4],'Fri'=>[4,5],'Sat'=>[4,4],'Sun'=>[3,3]][date('D')][date('H')<16].'day'));