2014-10-11 61 views
0

我正在构建一个Web应用程序,管理员需要知道其申请人的注册期限已过期。因此,我需要将当前日期与其从数据库中删除的过期日期进行比较。我尝试使用函数date_diff(),但与date_diff()的问题是,如果我有一个日期,如2014-02-31作为我的失效日期,我有2014年3月1日,那么现在是超过到期日期:因此应用程序已过期。但是当日期等于或小于时,函数似乎返回相同的值。计算两个日期之间的差异作为签名值

这里是我的功能

function CheckStatus($date) 
{ 
    $date1 = new DateTime(date('Y-m-d')); 
    $date2 = new DateTime($date); 

    $interval = $date1->diff($date2); 

    return $interval->format('%a'); 
} 

我只是想知道,如果今天的日期比到期日更大,从而知道的话,我知道申请人已过期。

任何帮助将appriciated。 在此先感谢

刚刚在PHP doc的这个例子:

function CheckStatus($date) 
{ 
//if expiry date is less than todays date 
//then enrollee expired 
    $date1 = new DateTime(date('Y-m-d')); 
    $date2 = new DateTime($date); 

    if($date1 > $date2) 
    { 
     echo '<span class="label-default label label-danger">expired</span>'; 
    } 
    if($date1 < $date2) 
    { 
     echo '<span class="label-default label label-info">Running</span>'; 
    } 
} 

有谁想我会遇到任何与此问题;也许稍后

回答

0
// assuming $date is a valid date string 
function isExpired($date) { 
    return time() > strtotime($date); 
} 
0

date_diff需要关键字arg“绝对”。将其设置为false以获得您要查找的结果。

请注意,date_diff和$ date-> diff是同一个函数的别名!

编辑:链接到文档以方便:http://php.net/manual/en/datetime.diff.php

相关问题