在我的数据库中,我的用户有一堆上次登录日期。它们是这样写的:
Last Login: Apr 08 2015, 22:53:49 CEST
和:
Last Login: Apr 08 2015, 22:53:49 CET
所以最后CEST
和CET
都可以发生。
然而,我想要做的是看多少天前(圆润)。有什么办法可以用这种格式做到吗?它必须采用这种格式。我想在我的网站上回应以下内容:
Last Login: Apr 08 2015, 22:53:49 CEST (46 days ago)
我无法找到此格式的任何示例。大多数都在几毫秒左右。这甚至可能吗?
我只需要这些日子。小时和分钟并不重要。
基本上是这样的:
$date=date('d M Y');
答案 0 :(得分:3)
第1步:
删除日期的最后一部分,即CET
或CE
$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');
}