在我的数据库中,我有一堆用户的最后登录日期。它们的编写方式如下: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');
发布于 2015-05-24 13:11:54
步骤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');
}https://stackoverflow.com/questions/30423747
复制相似问题