1

示例(今天是13.05.2013):

2013年 11 月 5 日、2013 年 5 月 20 日、 2013年 9 月 5 日 <-- 错误;

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

15/06/2013 ,11/06/2013,8/06/2013 <-- 错误;

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

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

4 回答 4

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;
}
于 2013-05-13T10:43:44.190 回答
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。如果至少有一个日期是今天或将来,则为 false。

于 2013-05-13T10:42:00.610 回答
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;
}
于 2013-05-13T10:42:15.443 回答
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;
    }
}
于 2013-05-13T11:14:39.413 回答