我正在尝试用PHP编写一个脚本,用来检查记录的更新时间(来自symfony的datetime对象)是否与现在的时间相差不到一小时,换句话说,如果记录是在过去一小时内更新的
以下是我到目前为止拥有的代码:
$recordDate = $slideshow->getDateTimeObject('updated_at');
$nowDate = new DateTime();
var_dump($showDate < $nowDate);但是,这仅显示更新时间是否早于现在。
发布于 2011-02-26 05:13:54
我放弃创建另一个DateTime对象,而是使用DateTime::getTimestamp()和strtotime()
if($recordDate->getTimestamp() >= strtotime("-1 hour")) {
//do stuff
}发布于 2011-02-26 03:58:26
要知道$recordDate是否比一小时前更新,而不是将其与当前日期进行比较,您需要将其与与我们之前的日期相对应的DateTime进行比较。
你会想要这样的东西:
if ($recordDate >= $oneHourAgo) {
// do something
}如果你使用的是PHP >= 5.3,你可以使用方法,将一个小时减去你的$nowDate DateTime。
例如,首先获取当前日期:
$oneHourAgo = new DateTime();
var_dump($oneHourAgo);然后,减去一个小时:
$oneHourAgo->sub(DateInterval::createFromDateString('1 hour'));
var_dump($oneHourAgo);下面是我得到的输出:
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,则需要使用。
这里也是如此,首先,创建当前日期:
$oneHourAgo = new DateTime();
var_dump($oneHourAgo);然后,修改它:
$oneHourAgo->modify('-1 hour');
var_dump($oneHourAgo);当然,这将得到与第一个解决方案完全相同的输出;-)
https://stackoverflow.com/questions/5121934
复制相似问题