php strtotime不起作用

con*_*men 3 php datetime date strtotime

我在下面的脚本上遇到了一个问题,假设$exp_date是从db中检索的,我想比较到期日和今天的日期来检查会员资格是否仍然存在.

没有什么可以显示但只是Time Expired,代码有什么问题?

从db中的到期列检索的数据设置为varchar(由前同事构建).

$exp_date = "22/01/2014";
$todays_date = date("d/m/Y");
$today = strtotime($todays_date); 
$expiration_date = strtotime($exp_date);
echo $expiration_date.' | '.$today.'<br>';
if($expiration_date > $today){ 
    echo 'Still Active';
} else { 
    echo 'Time Expired';
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

alw*_*arn 11

这是工作代码

 <?php
 $exp_date = "22/01/2014";
  $exp_date = str_replace('/', '-', $exp_date);
  $todays_date = date("d-m-Y");
  $today = strtotime($todays_date); 
  $expiration_date = strtotime($exp_date);

  echo $expiration_date.' | '.$today.'<br>';

  if($expiration_date > $today){ 
      echo 'Still Active';
  } else { 
      echo 'Time Expired';
  }
?>
Run Code Online (Sandbox Code Playgroud)

实际上strtotime()不适用于'd/m/Y'格式

希望它能帮助你.


hjp*_*r92 5

strtotime()手册上的注释。

通过查看各个组成部分之间的分隔符,可以消除m/d/yd-m-y格式中的日期的歧义:如果分隔符为斜杠(/),则假定为美国m / d / y;相反,如果分隔符是破折号(-)或点(。),则采用欧洲dmy格式。

为避免潜在的歧义,最好使用ISO 8601(YYYY-MM-DD)日期或DateTime::createFromFormat()在可能的情况下。