Пожалуйста, не используйте для этого регулярное выражение, что, если даты изменятся или что, если следующий разработчик должен прийти, поработать над этим и выяснить, что вы делаете?
Согласно в этой статье вы можете проверить, находится ли дата между двумя датами, сделав что-то вроде этого.
<?php
$currentDate = date('Y-m-d');
$currentDate = date('Y-m-d', strtotime($currentDate));
$startDate = date('Y-m-d', strtotime("01/09/2019"));
$endDate = date('Y-m-d', strtotime("01/10/2019"));
if (($currentDate >= $startDate) && ($currentDate <= $endDate)){
echo "Current date is between two dates";
}else{
echo "Current date is not between two dates";
}
относительно того, почему ваши шаблоны не работают, потому что у вас есть пространство вокруг канала в посередине, и вам, возможно, придется заключить все в скобки. У вас также есть $ на полпути через регулярное выражение, которое соответствует всей строке, я бы обычно имел его только в конце, например: -
^(regex1|regex2)$
У меня нет написал правильную версию на случай, если вы захотите ее использовать (пожалуйста, используйте метод объектов даты)