范围内的日期与否

时间:2015-04-18 16:18:11

标签: php datetime

我正在尝试检查用户提交的日期是否在范围内。

<?php
$datesyntx = "/^(19|20)\d\d[\-\/.](0[1-9]|1[012])[\-\/.](0[1-9]|[12][0-9]|3[01])$/";
$paydate = "2015-03-01";
if (preg_match($datesyntx, $paydate)) {
    if(strtotime($paydate) > strtotime('2015-04-23') && strtotime($paydate) < strtotime('2015-07-23')) {
 }
}
?>

实际上我想要得到它并不起作用。

2 个答案:

答案 0 :(得分:0)

试试这段代码:

$paydate   = date('2015-03-01');

$DateBegin = date('2010-01-01');
$DateEnd   = date('2016-01-01');

if (($paydate > $DateBegin) && ($paydate < $DateEnd))
{
  echo "is between";
}
else
{
  echo "not between!";  
}

P.S:在stackoverflow之前回答了这个问题: PHP check if date between two dates EDIT2 :简单易行。

答案 1 :(得分:0)

在这种情况下无需使用regex,使用简单的DateTime类来检查用户提交的日期是否在范围内。您也可以使用典型的strtotime()来完成这项工作。但DateTime课程对此非常有趣。

<?php
$userSubmitted = new DateTime("2015-04-01");
$startDate=new DateTime("2014-02-01 20:20:00");
$endDate=new DateTime("2015-04-30 23:50:11");
if ($userSubmitted > $startDate  && $userSubmitted < $endDate)
{
    return true;  #date is within the range of yours
}

return false;  #date not within the range of yours