我的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中比较日期的好方法?
答案 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>');
}
}