【发布时间】:2013-09-09 22:54:46
【问题描述】:
所以,我正在从数据库中获取付款日期,然后在其上添加一年作为到期日。我希望用户在登录时知道他们是活跃还是不活跃。
但是,每次我使用付款尚未过期的人登录时,我都会收到您是非活动会员的消息。有人可以看看我哪里出错了吗?
$paymentdate = strtotime($row[1]);
$paymentexpire = strtotime("+1 year", $paymentdate);
$currentdate = date('Y-m-d');
if($paymentdate != null && $paymentdate <= $currentdate && $currentdate < $paymentexpire){
$msg = $p->addContent("You are an active member<br>");
}
else{
$msg = $p->addContent("You are an inactive member<br>");
}
【问题讨论】:
-
这部分不完全有意义
$paymentdate >= $paymentdate,我的意思是大于部分......在第二行中 $paymentdate 已经是一个您不必要地重新铸造的日期。 -
尝试将条件分成三部分,并用样本数据对每一部分进行测试。你能提供一些样本输入吗?问题可能就在那里。
-
为什么在
$paymentexpire中使用strtotime($paymentdate)?你在设置$paymentdate时已经这样做了! -
检查修改后的代码。
-
strtotime()返回一个整数时间戳,date('Y-m-d')返回一个字符串,您无法可靠地比较两者。您应该使用time(),如下面@Sam 的示例,因为它返回一个整数时间戳。
标签: php date comparison