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

Php 列出所有日期并检查通过日期,php,date,if-statement,Php,Date,If Statement,示例(今天是2013年5月13日) 2013年5月11日,2013年5月20日,2013年5月9日假设这就是您需要的: function outdate($dates) { $res = true; $dates = str_replace('/','-',$dates); $dates = explode(',',$dates); $today = time(); foreach ($dates as $date) { if($today

示例(今天是2013年5月13日)


2013年5月11日,2013年5月20日,2013年5月9日假设这就是您需要的:

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;
}
函数过期($dates){
$res=true;
$dates=str_replace(“/”、“-”、$dates);
$dates=分解(“,”,$dates);
$today=时间();
foreach($日期作为$日期){
如果($今天<标准时间($日期)){
$res=假;
打破
}
}
返回$res;
}

如果所有传递的日期都在过去,则返回true。如果至少有一个日期是今天或将来,则为false。

假设这是您需要的:

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;
}
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;
}
函数过期($dates){
$res=true;
$dates=str_replace(“/”、“-”、$dates);
$dates=分解(“,”,$dates);
$today=时间();
foreach($日期作为$日期){
如果($今天<标准时间($日期)){
$res=假;
打破
}
}
返回$res;
}

如果所有传递的日期都在过去,则返回true。如果至少有一个日期是今天或将来,则为false。

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

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;
}

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


我找到了另一件事要做。。只需先找到一个最大日期,然后检查它

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;
    }
}
函数过期($dates){
$dates=str_replace(“/”、“-”、$dates);
$dates=分解(“,”,$dates);
$ts_dates=array();
foreach($日期作为$日期){
$ts_dates[]=标准时间($date);
}
$max_date=max($ts_dates);
$today=标准时间(“今天”);
如果($max_date<$today){
返回true;
}否则{
返回false;
}
}

我找到了另一个要做的事。。只需先找到一个最大日期,然后检查它

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;
    }
}
函数过期($dates){
$dates=str_replace(“/”、“-”、$dates);
$dates=分解(“,”,$dates);
$ts_dates=array();
foreach($日期作为$日期){
$ts_dates[]=标准时间($date);
}
$max_date=max($ts_dates);
$today=标准时间(“今天”);
如果($max_date<$today){
返回true;
}否则{
返回false;
}
}


我不明白这个问题?您不知道如何
返回true
?在你把它写在问题中之后?@F4r-20如果不知道如何检查max date是否已过,那么何时它应该返回true?如果所有日期都是过去的?如果某些日期是过去的?如果过去没有日期?@FAngel如果最大日期(最高日期)已过我不明白这个问题?您不知道如何
返回true
?在你把它写在问题中之后?@F4r-20如果不知道如何检查max date是否已过,那么何时它应该返回true?如果所有日期都是过去的?如果某些日期是过去的?如果过去没有日期?@FAngel If max date(最高日期)已通过
If(outdate('13/05/2013'))
为真,因此失败(今天将返回false)@l2aelba I刚刚恢复初始条件(其中
$Today>strotime($date)
)。如果日期等于今天的日期应该返回真的,你可以简单地离开
$today
如果日期等于今天的日期应该返回真的。展开请:(gonne是什么?+你能更新你的anwser吗?如果max date=today将返回假的;@l2aelba如果你看到有什么错误,你可以编辑其他人的答案。JFYI.
如果(outdate('13/05/2013'))
是真的,那么它就失败了(今天将返回false)@l2aelba I刚刚恢复了初始条件(其中
$Today>strotime($date)
)。如果与今天日期相等的日期返回true,您只需离开
$Today
(什么是gonne?+你能更新你的anwser吗?如果max date=today将返回false;@l2aelba如果你发现有问题,你可以编辑其他人的答案。JFYI。今天不是最新的吗?这取决于你,如果你想它是否过期。目前它不包括今天作为过期。你可以添加“=”如果你想返回true,那么今天是否过期呢?这取决于你,如果你想它是否过期。目前它不包括今天作为过期。你可以添加“=”如果你想返回true,那就行了。但是为什么你需要找到max date呢?所有建议的解决方案都会简单地检查所有日期。如果所有日期都在过去,则返回true。如果所有日期都在过去,则返回true。如果max在过去,则返回max在过去。如果max在过去,则返回max在过去。你的解决方案很好,因为它隐式地检查max date是否在过去,但你确实这样做了在不需要的情况下搜索max date来完成额外的工作。这只是一个提示,供您考虑。我使用您的,但我的代码是我想做的,在这里被问到:P thnkas:D@fangel这会起作用。但是为什么您需要查找max date呢?所有建议的解决方案都会简单地检查所有日期。如果所有日期都是过去的,则返回true。如果所有的都在过去,那么最大的都在过去。如果最大的都在过去,那么所有的都在过去。你的解决方案是好的,因为它隐式地检查最大日期是否在过去,但是你可以在不需要的时候搜索最大日期来做额外的工作。这只是一个提示,让你思考一下。我使用了你的,但我的代码是我在这里被问到之前想做的:P thnkas:D@方格尔