0

我的 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 中比较日期的好方法是什么?

4

2 回答 2

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>');
    }
}
于 2013-07-26T14:58:15.887 回答
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>');
}
}
于 2013-07-26T22:35:20.293 回答