PHP查看一个';最后发送';日期是30多天前


PHP see if a 'last sent' date was 30+ days ago

我有这个PHP代码:

$last_sent=strtotime('2013-08-12');
if($last_sent < strtotime('now +30 days'))
{
    echo 'send survey';
}
else
{
    echo 'dont send survey';
}

我需要看看$last_sent日期是30天前还是30多天前。不过这似乎不起作用。

我将上次发送日期更改为2013-07-12(正好是30天前),它与send survey相呼应,然后当我将日期更改为今天(2013-08-12)时,它仍然显示"发送调查"

使用strtotime('-30 days')而不是strtotime('now +30 days')

使用

$last_sent < time() - 30 * 24 * 3600

也许可以尝试使用dateTime对象,这类对象可以进行比较:

$date1 = new DateTime('2013-08-12');
$date2 = new DateTime('+30 days);
if($date2 > $date1) //do somethings

另一个解决方案是date_diff:http://www.php.net/manual/en/datetime.diff.php