在PHP中检查mySQL日期是否过去的“最佳”方法是什么?

时间:2016-05-24 15:35:39

标签: php date

所以我有一个存储日期时间值的数据库。我想知道日期是否已经过去了 - 我不关心这个例子中的时间部分,只关注日期。

所以我现在有以下代码

//this is the current date
$today = strtotime(date("Y-m-d"));
//this is the date from the database
$gameDate = strtotime($rec[0])
if (strtotime($rec[0]) < $today) {

我觉得我不是以最公认的方式做这件事,但我的大脑因太多的数据而受伤,我希望有人可以给我一个关于'正确'方法的指针。

1 个答案:

答案 0 :(得分:1)

假设您只关心Date部分,而不关注time部分,因为2016-01-01 14:00:002016-01-01 15:00:00将被视为同一天,而不是过去,您可以使用以下内容:

$dateFromDatabase = new DateTime('2016-05-23 17:00:00'); // $rec[0] in your case
$current = new DateTime();

$difference = $current->diff($dateFromDatabase);

if ($difference->format('%R') === '-') {
    echo 'Date is in the past';
}

ideone can be found here

任何问题都让我知道。