PHP - 计算多少天前

时间:2015-05-24 12:57:12

标签: php mysql date time count

在我的数据库中,我的用户有一堆上次登录日期。它们是这样写的: 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 个答案:

答案 0 :(得分:3)

第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');
}