Добрый день!
Написал скрипт расчета доставки
function delivery( $day1, $day2 ) {
$months = array( 1 => 'января' , 2 => 'февраля' , 3 => 'марта' , 4 => 'апреля' , 5 => 'мая' , 6 => 'июня' , 7 => 'июля' , 8 => 'августа' , 9 => 'сентября' , 10 => 'октября' , 11 => 'ноября' , 12 => 'декабря' );
$date1 = strtotime('+' . $day1 . ' days');
$date2 = strtotime('+' . $day2 . ' days');
if( date('n', $date1) > date('n', $date2) ) {
return date("j " . $months[date('n', $date1)], $date1) . ' - ' . date("j " . $months[date('n', $date2)], $date2);
}else{
return date("j", $date1) . ' - ' . date("j " . $months[date('n', $date2)], $date2);
}
}
echo delivery( 1, 3 );
Как учитывать праздники если дата выпадает или находится в диапазоне?
$d = (12,14,18)
Например дата доставки написана: 12 - 14 января
А праздник 12 числа, тогда должно показывать 13 - 15 января
Если праздник 13 числа, то 12-15 января
Если праздник 12 и 14, то 13 - 16 января
Сначала написал сумирование к первой дате, потом расчет диапозона и через цикл прибавление ко второй но как то итоге не получается и все слишком сложно и примитивно. Куча кода для 1 месяца, а если их много и допустим массив выглядит:
$d = array( array( 0 => 1, 1 => array( 12, 14, 18) ) );
0 - номер месяца, 1 - массив с датами праздников и выходных