3

我必须找到时间戳格式的日期之前的天数(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 天,而现在2013-12-01 10:01:00的日期是 14 天。

我怎么能只改变没有时间的日子呢?

4

3 回答 3

13

使用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?
)
于 2013-10-22T13:58:08.300 回答
2

只需从中取出日期组件即可。

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

现在它只包含日期组件。你可以用它来比较。

于 2013-10-22T13:54:55.230 回答
0

单线:

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

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

于 2019-10-08T11:30:19.360 回答