比较从PHP到MYSQL的日期,strtotime无法正常工作

时间:2013-07-26 13:39:53

标签: php mysql date datetime mysqli

我的MySQL表上有一个DATE字段。假设该值为2015-05-05。 我想检查当前时间是在之前还是之后。 这是我的代码:

foreach ($row as $row)
{
    $ExpDate = strtotime($row['exp_date']);
    $Today = strtotime(date("Y-m-d"));


    echo $Today . ' - ' . $ExpDate;
    if ($Today > $ExpDate)
    {
        exit('<M>LicenseExpired<M>');
    }
}

问题在于它不起作用。没有strtotime的exp的值是2015-05-05。我添加strtotime,值变为空字符串。

我如何解决这个问题或者在PHP中比较日期的好方法?

2 个答案:

答案 0 :(得分:0)

比较MySQL中的日期时,没有理由采取额外步骤并使用string_to_time()。以下示例应该可以正常工作。 MySQL DATE的格式设计使得这种性质的比较自然而然地无需任何额外步骤。

foreach ($row as $row)
{
    $ExpDate = $row['exp_date'];
    $Today = date("Y-m-d");


    echo $Today . ' - ' . $ExpDate;
    if ($Today > $ExpDate)
    {
        exit('<M>LicenseExpired<M>');
    }
}

答案 1 :(得分:0)

试试这个

foreach ($row as $row)
{   
$ExpDate = new DateTime($row['exp_date']);
$Today = new DateTime(date("Y-m-d"));
$interval = $ExpDate->diff($Today);
   //echo $interval->format('%R%a days');  <--- to diffenernce by days.

   if ($interval > 0)
{
    exit('<M>LicenseExpired<M>');
}
}