PHP检查过去的日期

时间:2013-03-08 22:28:38

标签: php

我正在使用RFC822日期格式并尝试让我的if语句工作,但它不会,我无法解决原因,这就是数据回应的结果:

$currentdate = Fri, 01 Mar 13 22:24:02 +0000
$post['created_on'] = Sat, 17 Nov 2012 19:26:46 +0100

这是我的陈述:

$currentdate = date(DATE_RFC822, strtotime("-7 days"));
if ($post['created_on'] < $currentdate) 
{
  echo "test";
}
else
{

}

我正在尝试检查创建的数组是否在过去7天内,我假设它与“&lt;”有关在声明或日期格式化的方式?

谢谢, 西蒙

2 个答案:

答案 0 :(得分:1)

您想要比较时间戳:

<?php
if (strtotime($post['created_on']) >= strtotime('-7 days'))
{
    // Created in the last seven days
}

答案 1 :(得分:0)

您的代码无法像进行字母数字比较一样工作。 RFC822不是为此而设计的。

请注意,Fri ...低于Sat ...,而F的字母为S之前的比较。

使用DateTime类:

$currentdate = new DateTime('-7days +0100'); // ! use the same tz offset as the post !
$postdate = new DateTime('Sat, 17 Nov 2012 19:26:46 +0100');

if($postdate < $currentdate) {
  // ... do stufff
}