根据用户订阅有效日期返回false?

时间:2015-09-01 13:44:41

标签: php datetime

我是一个情景,其中管理员在网站中注册了有效期结束日期的用户详细信息。在登录期间,脚本应验证它是否超过结束日期。

我可以尝试使用此代码,

$val_date = date("Y/m/d");

$date1 = new DateTime($val_date);
$date2 = new DateTime("2009/06/26");
$interval = $date1->diff($date2);

但是,我应该如何处理负日期?

我的意思是如果这样的场景,

$date1 = new DateTime("2009/03/24");
$date2 = new DateTime($val_date);
$interval = $date1->diff($date2);

哪个日期我应该有当前日期? $date1$date2

1 个答案:

答案 0 :(得分:0)

在与之比较之前,您甚至不需要将今天设置为日期:

$val_date = date("Y/m/d");

只是做:     $ today = strtotime(日期(“​​Y / m / d”);     $ exp_date = strtotime(date(“2009/06/26”));

if($today<$exp_date){
    echo 'Login has not expired yet';
}else{
    echo 'Login has expired and you cannot enter anymore';
}

strtotime将日期(接受非常宽的格式选项)转换为unix时间戳。 Unix时间戳计为1970年1月1日以来的秒数。(UTC) 这意味着,例如,当我写unix时间戳时,将为'1441119516'。 然后,可以轻松地进行任何比较或计算,例如添加或删除天/小时。例如,如果您需要添加一小时,则需要执行以下操作:

$today+3600;

将60 * 60秒添加到上一个时间戳。