Как я могу определить, находится ли дата между двумя датами в PHP? - PullRequest
3 голосов
/ 03 июня 2011

Мне нужно знать, действительно ли значение $paymentDate (31/12/2010) действует между $contractDateBegin (01/01/2001) и $contractDateEnd (01/01/2012)

ДД / ММ / ГГГГ ФОРМАТ!

Ответы [ 3 ]

30 голосов
/ 03 июня 2011

Начиная с PHP 5.3:

$paymentDate = DateTime::createFromFormat('d/m/Y', '31/12/2010');
$contractDateBegin = DateTime::createFromFormat('d/m/Y', '01/01/2001');
$contractDateEnd = DateTime::createFromFormat('d/m/Y', '01/01/2012');

if ($paymentDate >= $contractDateBegin && $paymentDate <= $contractDateEnd)
{
  echo "is between\n";
}

Вам может потребоваться изменить значение от <= до < в зависимости от того, являются ли даты исключительными.

3 голосов
/ 03 июня 2011
$test = strtotime($paymentDate);
if ($test >= strtotime($contractDateBegin) && $test <= strtotime($contractDateEnd))
3 голосов
/ 03 июня 2011

если они отформатированы как ГГГГММДД, вы можете проверить, если $paymentDate > $contractDateBegin and $paymentDate < $contractDateEnd

Это работает с любым числовым форматом, который сначала имеет большие форматы. Если у вас есть американские даты, например, MM / DD / YYYY, это не сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...