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
所以最后的CEST
和CET
都可以出现。
然而,我想做的是,看看那是多少天前的(四舍五入)。有什么办法可以用这种格式做到这一点吗?它必须采用这种格式。我想在我的网站上回应以下内容:
Last Login: Apr 08 2015, 22:53:49 CEST (46 days ago)
我找不到此格式的任何示例。它们中的大多数都在毫秒左右。这可能吗?
我只要日子。小时和分钟并不重要。
基本上是这样的:
$date=date('d M Y');
第 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');
}
在我的数据库中,我有一堆用户的上次登录日期。它们是这样写的:
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');
第 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');
}