PHP将日期与当前日期进行比较不起作用

时间:2015-07-02 02:09:21

标签: php wordpress date

这是一个wordpress网站,但日期是自定义的,它们不是发布日期。我试图将过期日期与当前日期进行比较。它适用于某些日期,但到期日期为01/01/2017或01/01/2016,它将返回无效状态。即使日期是2017年,它仍然会返回无效状态。不知何故,它不一致,我不知道在哪里检查和可能缺少什么声明。这是示例代码。过期日期已存储在$ dates [1]中,该值的格式为MM / DD / YY。我使用wordpress current_time代码来调用当前日期。请帮忙。谢谢!

<?php 
$current_datetime = current_time( 'mysql' );
if ($dates[1] < date('m/d/Y', strtotime($current_datetime)) ){
    echo '<td class="-status"><span>Invalid</span></td>'."\n";
}
else
if ($dates[1]  >= date('m/d/Y', strtotime($current_datetime)) ){
    echo '<td class="-status"><span>Valid</span></td>'."\n";
    }   

?>  

1 个答案:

答案 0 :(得分:0)

我终于明白了。这是日期的格式,特别是日期的年份有问题。虽然改变格式是另一种方式。我刚刚在php上使用explode进行了更改,如果使用'/'并分配给数组,它基本上会分隔日期格式。然后比较当前年份到期日的年份。

<?php 
$expire_year = explode('/', $dates[1]);
if ($dates[1] < date('m/d/Y', strtotime($current_date_test))){
    if($expire_year[2] > date('Y', strtotime($current_date_test))){ 
    echo '<td class="-status"><span>Valid</span></td>'."\n";
    }

else{ 
    echo '<td class="-status"><span>Invalid</span></td>'."\n";
    }

else{
    if ($dates[1]  >= date('m/d/Y', strtotime($current_date_test)) ){ 
        echo '<td class="-status"><span>Valid</span></td>'."\n";
    }   
}                                   
?>

感谢您的想法!