PHP - 计算多少天前

PHP - Count how many days ago

在我的数据库中,我有一堆用户的上次登录日期。它们是这样写的: Last Login: Apr 08 2015, 22:53:49 CEST 和: Last Login: Apr 08 2015, 22:53:49 CET

所以最后的CESTCET都可以出现。

然而,我想做的是,看看那是多少天前的(四舍五入)。有什么办法可以用这种格式做到这一点吗?它必须采用这种格式。我想在我的网站上回应以下内容:

Last Login: Apr 08 2015, 22:53:49 CEST (46 days ago)

我找不到此格式的任何示例。它们中的大多数都在毫秒左右。这可能吗?

我只要日子。小时和分钟并不重要。

基本上是这样的: $date=date('d M Y');

第 1 步:

删除日期的最后一部分,即 CETCE

$Date = substr($Date, 0, strpos($Date, " "));

最后一个空格后的字符

步骤 2

通过

找出当前日期和提取日期之间的差异
$interval = $datetime1->diff($datetime2);

这是完整的代码:

<?php
$Date = "Apr 08 2015, 22:53:49 CES";
$Date = substr($Date, 0, strpos($Date, " CE"));
$now  = date('Y-m-d');
$datetime1 = new DateTime($Date);
$datetime2 = new DateTime($now);
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
?>

如果你想在有 0 天差异的情况下打印不同的消息,那么只需检查是否有 0 天差异并处理它

if ($interval->format('%R%a')=="-0")
{
    echo 'Last Login Today';
}
else
{
    echo $interval->format('%R%a');
}