Дополнительная функциональность PHP Strtotime

Следующий код возвращает первую субботу следующего месяца и первую субботу следующего месяца. С первой субботой следующего месяца единственная проблема заключается в том, что пользователь может выбрать день, даже если это завтра.

Скажем, скоро 2 апреля, то есть суббота. На данный момент клиент может забронировать этот день. Однако, если первая суббота следующего месяца снова меньше 8 дней, я хочу, чтобы в первом и в этом месяце, а в следующем месяце по умолчанию был еще один месяц.

<?php echo date('Y-m-d', strtotime('first saturday', strtotime('+1 month', strtotime(date("01-m-Y")))));?>

<?php echo date('Y-m-d', strtotime('first saturday', strtotime('+2 month', strtotime(date("01-m-Y")))));?>

Есть идеи?


person RIK    schedule 29.03.2011    source источник


Ответы (1)


Будет ли это работать для вас?

// Use 691200 for eight days.
if ((strtotime('first saturday', strtotime('+1 month')) - mktime()) < 691200) {
    // Go two months.
    echo date('Y-m-d', strtotime('first saturday', strtotime('+2 month', strtotime(date("01-m-Y")))));
    echo date('Y-m-d', strtotime('first saturday', strtotime('+3 month', strtotime(date("01-m-Y")))));
} else {
    // Go one month.
    echo date('Y-m-d', strtotime('first saturday', strtotime('+1 month', strtotime(date("01-m-Y")))));
    echo date('Y-m-d', strtotime('first saturday', strtotime('+2 month', strtotime(date("01-m-Y")))));
}
person linux4me    schedule 30.03.2011