PHP查找日期之前的日子

时间:2013-10-22 13:51:36

标签: php

我必须找到时间戳格式(mysql db)

之前的天数
$row['date_exp'] format is '2013-12-16 10:00:00';
$datenow = date("Y-m-d");
$diff = (strtotime($row['date_exp']) - strtotime($datenow))/(86400);
$days = sprintf("%02d", $diff);

我的问题是,如果现在日期为2013-12-01 09:59:00,则日期为15 而datenow为2013-12-01 10:01:00,日期为14。

我怎么能只在没有时间的日子里有所作为呢?

3 个答案:

答案 0 :(得分:9)

使用DateTime类:

$a = new DateTime('now');
$b = new DateTime('2013-12-16');

$a->diff($b);

返回

DateInterval Object
(
    [y] => 0
    [m] => 1
    [d] => 24
    [h] => 8
    [i] => 3
    [s] => 23
    [invert] => 0
    [days] => 54  // This is what you're looking for?
)

答案 1 :(得分:2)

只需取出日期组件即可。

$newDate = date("Y-m-d", strtotime($row['date_exp']));

现在这只包含日期组件。您可以使用它进行比较。

答案 2 :(得分:0)

单线:

echo (new DateTime('2019-12-17'))->diff(new DateTime())->days; 

...返回 直到 Dec 17, 2019的天数。