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

时间:2015-10-25 14:04:31

标签: php date-difference

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

6 个答案:

答案 0 :(得分:2)

这将有效:

<?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'); ?>

答案 1 :(得分:1)

谢谢大家,我找到了一个更简单的解决方案(对于像我这样的初学者来说更简单):)

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

$datediff现在显示天数。

答案 2 :(得分:0)

使用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

请参阅DateTime::diff

答案 3 :(得分:0)

现在答复已经太迟了,还有其他好的答案,但是我想分享对我有用的东西。

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>';

答案 4 :(得分:0)

下面的代码将为您提供与当前日期的日期差,希望对您有所帮助。

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

您将获得的结果是天数。

答案 5 :(得分:-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是一天中的秒数。