列出所有日期并检查通过日期

时间:2013-05-13 10:32:20

标签: php date if-statement

示例(今天 13.05.2013 ):

  

11/05/2013, 2013年5月20日,9/05/2013< - false;

     

10/03 / 2013,14 / 04/2013, 12/05/2013 < - true;

     

15/06/2013 ,11/06 / 2013,8 / 06/2013< - false;

     

13/05/2013 ,10/04 / 2013,02 / 05/2013< - false(今天=假)

PHP:

function outdate($dates) {
    $dates = str_replace('/','-',$dates);
    $dates = explode(',',$dates);
    $today = time();
    foreach ($dates as $date) {
        if($today > strtotime($date)) {
            // ????
        }
    }
}

我已经完成了一些部分。请帮我做返回 truefalse

我将使用我的功能......

if( outdate('11/05/2013, 12/05/2013, 9/05/2013') ) {
  // do something
}

任何人都可以帮助我?

4 个答案:

答案 0 :(得分:2)

假设这是您所需要的:

function outdate($dates) {
    $res = true;
    $dates = str_replace('/','-',$dates);
    $dates = explode(',',$dates);
    $today = time();
    foreach ($dates as $date) {
        if($today < strtotime($date)) {
           $res = false;
           break;
        }
    }
    return $res;
}

如果所有过去的日期都已过去,它将返回true。如果今天或将来至少有一个日期,则为假。

答案 1 :(得分:2)

function outdate($dates) {
$flag = false;
$dates = str_replace('/','-',$dates);
$dates = explode(',',$dates);
$today = time();
foreach ($dates as $date) {
    if($today > strtotime($date)) {
        $flag = true;
        break;
    }
}
return $flag;
}

答案 2 :(得分:2)

您可以使用数组,类似这样(未经测试)

 $array = array("11/05/2013", "12/05/2013", "9/05/2013");

$result = checkDates($array);

function checkDates($array)
{

  foreach($array as $a)
  {
    $date = strtotime(preg_replace("/^([0-9]{1,2})[\/\. -]+([0-9]{1,2})[\/\. -]+([0-9]{1,4})/", "\\2/\\1/\\3", $a));

    if($date>time()) return false;

  }

  return true;
}

答案 3 :(得分:1)

我找到了另一个要做的事情..先查找最大日期然后再检查一下!

function outdate($dates) {
    $dates = str_replace('/','-',$dates);
    $dates = explode(',',$dates);
    $ts_dates = array();
    foreach ($dates as $date) {
        $ts_dates[] = strtotime($date);
    }

    $max_date = max($ts_dates);
    $today = strtotime('today');
    if($max_date < $today) {
        return true;
    } else {
        return false;
    }
}