首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较PHP中的日期

比较PHP中的日期
EN

Stack Overflow用户
提问于 2011-02-26 03:52:30
回答 2查看 1.6K关注 0票数 1

我正在尝试用PHP编写一个脚本,用来检查记录的更新时间(来自symfony的datetime对象)是否与现在的时间相差不到一小时,换句话说,如果记录是在过去一小时内更新的

以下是我到目前为止拥有的代码:

代码语言:javascript
复制
$recordDate = $slideshow->getDateTimeObject('updated_at');
$nowDate = new DateTime();
var_dump($showDate < $nowDate);

但是,这仅显示更新时间是否早于现在。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-26 05:13:54

我放弃创建另一个DateTime对象,而是使用DateTime::getTimestamp()和strtotime()

代码语言:javascript
复制
if($recordDate->getTimestamp() >= strtotime("-1 hour")) {
    //do stuff
}
票数 1
EN

Stack Overflow用户

发布于 2011-02-26 03:58:26

要知道$recordDate是否比一小时前更新,而不是将其与当前日期进行比较,您需要将其与与我们之前的日期相对应的DateTime进行比较。

你会想要这样的东西:

代码语言:javascript
复制
if ($recordDate >= $oneHourAgo) {
    // do something
}

如果你使用的是PHP >= 5.3,你可以使用方法,将一个小时减去你的$nowDate DateTime。

例如,首先获取当前日期:

代码语言:javascript
复制
$oneHourAgo = new DateTime();
var_dump($oneHourAgo);

然后,减去一个小时:

代码语言:javascript
复制
$oneHourAgo->sub(DateInterval::createFromDateString('1 hour'));
var_dump($oneHourAgo);

下面是我得到的输出:

代码语言:javascript
复制
object(DateTime)[1]
  public 'date' => string '2011-02-25 21:03:32' (length=19)
  public 'timezone_type' => int 3
  public 'timezone' => string 'Europe/Paris' (length=12)

object(DateTime)[1]
  public 'date' => string '2011-02-25 20:03:32' (length=19)
  public 'timezone_type' => int 3
  public 'timezone' => string 'Europe/Paris' (length=12)

如果使用PHP5.2,则需要使用。

这里也是如此,首先,创建当前日期:

代码语言:javascript
复制
$oneHourAgo = new DateTime();
var_dump($oneHourAgo);

然后,修改它:

代码语言:javascript
复制
$oneHourAgo->modify('-1 hour');
var_dump($oneHourAgo);

当然,这将得到与第一个解决方案完全相同的输出;-)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5121934

复制
相关文章

相似问题

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