我需要知道一个 $paymentDate
(31/12/2010) 是否在 $contractDateBegin
(01/01/2001) 和 $contractDateEnd
(01/01/2012) 之间有效。
日期格式为dd/mm/yyyy!
我需要知道一个 $paymentDate
(31/12/2010) 是否在 $contractDateBegin
(01/01/2001) 和 $contractDateEnd
(01/01/2012) 之间有效。
日期格式为dd/mm/yyyy!
截至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";
}
根据日期是否包含在内,您可能需要调整使用<=
为<
。
$paymentDate > $contractDateBegin and $paymentDate < $contractDateEnd
来确定是否符合要求。这适用于任何先出现较大格式的数字格式。例如,如果您使用美国日期格式MM/DD/YYYY,则无法使用此方法。$test = strtotime($paymentDate);
if ($test >= strtotime($contractDateBegin) && $test <= strtotime($contractDateEnd))
strtotime()
将返回FALSE。在问题编辑后,似乎这就是他想要的。 - Wesley Murchstrtotime
不起作用,因为它假定任何带有 /
的内容都是以 m/d/Y 格式表示的。日期需要使用破折号才能使 strtotime
正常工作。 - Matthew