我是一个情景,其中管理员在网站中注册了有效期结束日期的用户详细信息。在登录期间,脚本应验证它是否超过结束日期。
我可以尝试使用此代码,
$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
?
答案 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秒添加到上一个时间戳。