将今天的日期与php中的存储日期进行比较

时间:2013-09-06 18:10:53

标签: php date

我正在尝试使用PHP比较两个日期(一个存储在数据库中)和今天的日期,并根据比较结果输出“print”语句。我的到期日期在db中存储为“datetime”。它通过查询调用并分配给变量$ expire。我用于比较的代码如下,但无论日期如何,它总是返回false。

<? 
  $todays_date = date("m-d-Y"); 
  $today = strtotime($todays_date); 
  $expired = strtotime($expire); 

  if ($today > $expired) {
    print "<a target='_blank' href='/pdfwriter/generate_certificate.php?member=".$memberID."'>Print Membership Certificate</a>";
  } 
  else 
  {
    print "<a href='registration/registration.aspx?registerType=1'>Membership Expired - Renew Today</a>";
  } 
?>

2 个答案:

答案 0 :(得分:6)

使用DateTime()更容易,因为它可以更轻松地比较日期。无需转换为时间戳或任何东西加上它需要考虑夏令时。我也认为您的比较运算符是向后的。

$today = new DateTime();
$expires = new DateTime($expire);
if ($today < $expires)
{
    print "<a target='_blank' href='/pdfwriter/generate_certificate.php?member=".$memberID."'>Print Membership Certificate</a>";
}
else
{
    print "<a href='registration/registration.aspx?registerType=1'>Membership Expired - Renew Today</a>";
}

答案 1 :(得分:0)

另一种解决方案可以是简单的PHP日期类。

它提供了比较方法以及日期加法减法和其他有用的功能。

例如,日期比较:

$date = new simpleDate();
if($date->now()->compare($other_date)->isBefore())
{ ... }
else { ... }

您可以查看库教程页面以获取更多示例。 Please click here