Php 日期是否在范围内

Php 日期是否在范围内,php,datetime,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') && str

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

<?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')) {
 }
}
?>
这并不是我想要得到的

请尝试以下代码:

$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!";  
}
附言:这个问题以前在stackoverflow得到过回答: EDIT2:简单方法。

在这种情况下不需要使用正则表达式,使用简单的DateTime类来检查用户提交的日期是否在范围内。您也可以使用典型的strotime来完成这项工作。但是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

使用PHP内置类DateTime来比较日期,这很容易&您不必手动转换日期或通过preg_Match运行日期。这是一个重复的问题,以前回答过:。我已经用简单的方法回答了。测试一下。日期“2015-03-01”到底有什么作用?我想这是客户要求的日期,请看问题。你知道日期“2015-03-01”返回2015-03-01吗?那么为什么需要date函数呢?