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'格式
希望它能帮助你.
strtotime()
手册上的注释。
通过查看各个组成部分之间的分隔符,可以消除
m/d/y
或d-m-y
格式中的日期的歧义:如果分隔符为斜杠(/),则假定为美国m / d / y;相反,如果分隔符是破折号(-)或点(。),则采用欧洲dmy格式。为避免潜在的歧义,最好使用ISO 8601(YYYY-MM-DD)日期或
DateTime::createFromFormat()
在可能的情况下。