3

我似乎无法让它工作。我已经从网上的样本中尝试过,但没有一个正是我需要的。基本上我希望能够显示从给定日期过去的天数。我下面的示例是 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")是今天的日期。你能告诉我出了什么问题吗?

4

6 回答 6

3

这将起作用:

<?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'); ?>
于 2015-10-25T14:29:00.947 回答
2

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

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

$datediff现在显示天数。

于 2015-10-26T00:22:26.850 回答
2

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

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

这输出(截至本文发布之日)::

[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

日期时间::差异

于 2015-10-25T14:20:52.423 回答
1

现在回复为时已晚,还有其他很好的答案,但我想分享对我有用的方法。

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>';
于 2018-12-19T02:42:02.953 回答
0

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

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

您将得到的结果是天数。

于 2019-11-27T12:00:28.177 回答
-1

尝试使用时间戳。

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

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

86400 是一天中的秒数。

于 2015-10-25T14:10:18.277 回答