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

PHP将日期与当前日期进行比较不起作用,php,wordpress,date,Php,Wordpress,Date,这是一个wordpress网站,但日期是自定义的,不是发布日期。我正在尝试将过期日期与当前日期进行比较。它在某些日期有效,但当到期日期为2017年1月1日或2016年1月1日时,它返回无效状态。即使日期是2017年,它仍然返回无效状态。不知何故,这是不一致的,我不知道在哪里检查和什么声明可能会丢失。这是示例代码。过期日期已存储在$dates[1]中,并且该值的格式为MM/DD/YY。我使用wordpress当前时间代码调用当前日期。请帮忙。谢谢 <?php $current_dateti

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

<?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";
    }   

?>  

我终于明白了。这是日期的格式,特别是日期的年份有问题。虽然改变格式是另一种方式。我只是通过在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";
    }   
}                                   
?>
谢谢你的主意

回显$current_datetime并给我反馈,因为您使用的是格式m/d/Y,所以您正在比较字符串。因此,对于今天的2015年1月7日,您基本上是在检查'2017年1月1日'='2015年1月7日'{…}。由于01<07为真,您的if返回无效。如果'2017-01-01'>='2015-07-01'返回true,则应使用您的as else返回的Y-m-d进行比较,结果为有效。使用strotime比较日期格式。。确保你的日期格式是Y-m-d,因为我知道m/d/Y总是有一些奇怪的时间,就像d/m/Y一样。。。示例strotime$date[1]