date — проблема вычисления интервала PHP с Chronos

Любая помощь была бы удивительной, так как я не могу понять это.

На данный момент у меня есть объект даты и времени (например, «2017-01-05 23:22:27») и выбранный пользователем интервал повторения (например, каждые 2 дня между понедельником (1) и пятницей (5)). получить текущий день недели из datetime с

$dayOfWeek = date("w", time($dateObject->timestamp));

Но я понятия не имею, чтобы проверить, что это в будние дни, и если это за пределами, как рассчитать дополнительные дни, чтобы он снова находился в пределах интервала, и добавить это к дате.

Например, если среда является четвертой, после выполнения этой процедуры необходимо будет вернуться с датой-временем 6-го числа, после повторной проверки потребуется 9-е, поскольку это следующий день, который находится внутри интервал дня недели

Я использую CakePHP 3 и Chronos, если это поможет.

2

Решение

Вместо date("w", time($dateObject->timestamp)) ты можешь использовать date('l',...) для сокращенного дня недели (т.е. понедельник, вторник и т. д.) или вы можете использовать date('d',...) для полного имени (т.е. понедельник, вторник и т. д.).

Если вы назначаете числовое значение для каждого дня, используйте массив для хранения каждого:

$days = array(0 => 'Sunday', 1 => 'Monday', 2 => 'Tuesday', 3 => 'Wednesday', 4 => 'Thursday', 5 => 'Friday', 6 => 'Saturday');

Если вы решили использовать короткое имя в приведенном выше date() функция, просто замените полный день недели в $days вместо этого массив с трехбуквенным именем.

Так как вы используете числовое отображение для дней недели, вы можете использовать 0-6 в условных (if/else) заявления, чтобы определить, находится ли он в интервале или нет.

Вот документация PHP.net по date() функция наряду с форматированием символов: Функция PHP.net date ()

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]