PHP 获取日期与今天(现在)日期之间的天数差

PHP Get days difference between a date and the date today (Now)

我似乎无法让它工作。我试过在线样本,但没有一个正是我需要的。基本上我希望能够显示从给定日期开始经过的天数。我下面的示例是 HTML 和 PHP 的组合,出于某些原因我不得不这样做。

<?php
$OldDate = strtotime($row['DateSigned']);
$NewDate = date('M j, Y', $OldDate);
?>

<b>Date Signed:</b> <?php echo $NewDate; ?>
<b>Days Since Signed:</b> <?php echo date_diff(strtotime($NewDate),Date("y/m/d")); ?>

这似乎失败了。Date("y/m/d")是今天的日期。你能告诉我哪里出了问题吗?

尝试使用时间戳。

$from = mktime(0,0,0,6,1,2015); // example old date
$to = time(); // now

echo round(($to - $from)/86400); // gives you elapsed days

86400 是一天中的秒数。

使用 date_diff,它需要 DateTime 对象而不是整数。这是一个示例,可以帮助您到达您想要去的地方

<?php
    $OldDate = new DateTime('2009-10-11');
    $now = new DateTime(Date('Y-m-d'));
    print_r($OldDate->diff($now));
?>

此输出(截至 post 当天)::

[y] => 6
[m] => 0
[d] => 14
[h] => 0
[i] => 0
[s] => 0
[weekday] => 0
[weekday_behavior] => 0
[first_last_day_of] => 0
[invert] => 0
[days] => 2205
[special_type] => 0
[special_amount] => 0
[have_weekday_relative] => 0
[have_special_relative] => 0

DateTime::diff

这会起作用:

<?php
$OldDate = strtotime("2015-10-21");
$NewDate = date('M j, Y', $OldDate);
$diff = date_diff(date_create($NewDate),date_create(date("M j, Y")));
?>

<b>Date Signed:</b> <?php echo $NewDate; ?>
<b>Days Since Signed:</b> <?php echo $diff->format('%R%a days'); ?>

谢谢大家,我找到了一个更简单的解决方案(像我这样的初学者更容易理解):)

$now = time(); // or your date as well
$your_date = strtotime($NewDate);
$datediff = ceil(($now - $your_date)/86400);

$datediff 现在显示天数。

来不及回复,还有其他好的答案,但我想分享对我有用的答案。

date_default_timezone_set("Asia/Karachi");
$old_date = new DateTime('2018-12-01 04:10:58');
$now = new DateTime(Date('Y-m-d'));
$interval = $old_date->diff($now);

echo $interval->d.' days<br>';

// you can also get years, month, hours, minutes, and seconds
echo $interval->y.' years<br>';
echo $interval->m.' months<br>';
echo $interval->h.' hours<br>';
echo $interval->i.' minutes<br>';
echo $interval->s.' seconds<br>';

下面的代码可以让您获得与当前日期的日期差异,希望对您有所帮助。

    $date = $row['DateSigned'];
    $diff = date_diff(date_create($date), date_create(date('Y-m-d')));
    echo $diff->format("%a");

您将得到的结果是天数。