首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -数数几天前

问PHP -数数几天前
EN

Stack Overflow用户
提问于 2015-05-24 12:57:12
回答 1查看 1.1K关注 0票数 0

在我的数据库中,我有一堆用户的最后登录日期。它们的编写方式如下: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');

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-24 13:11:54

步骤1 :

删除日期的最后一部分,即CET或CE

代码语言:javascript
复制
$Date = substr($Date, 0, strpos($Date, " "));

它将在最后一个空格之后的字符

步骤2

查找当前日期与提取日期之间的差异。

代码语言:javascript
复制
$interval = $datetime1->diff($datetime2);

下面是完整的代码:

代码语言:javascript
复制
<?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日差,并处理它。

代码语言:javascript
复制
if ($interval->format('%R%a')=="-0")
{
    echo 'Last Login Today';
}
else
{
    echo $interval->format('%R%a');
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30423747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档