PHP 时间 检查 Post 是否超过六个月

PHP Time Check if Post is Older Than Six Months

我的博客 posts 上有它的发布日期和更新时间(如果已更新)。我需要添加另一个控件来检查 post 发布或更新日期是否早于六个月。

在下面的例子中,我正在检查“超过 1 小时”只是为了看看是否有任何事情发生。

如果是这样,显示一个带有信息的 DIV 标签(我将关闭 PHO 并执行正常 <div class=""></div>)。

所以,我需要的是:如果 post 没有“updated_on”日期,则根据“published_on”日期计算,如果 post 确实有一个“updated_on”,以此为基础进行计算。

换句话说,它首先需要检查是否有“updated_on”,如果没有,则使用“published_on”日期。

这是我的代码:

<div class="published">

    Published on: <time datetime="2021-02-24T21:05:55+00:00"><?=date('jS \o\f F \@ H:i', strtotime($post['published_on']))?> (<?=time_elapsed_string($post['published_on'])?>)</time><br>

        <?php if ($post['published_on'] != $post['updated_on']): ?>

            Updated on: <time datetime="2021-02-24T21:05:55+00:00"><?=date('jS \o\f F \@ H:i', strtotime($post['updated_on']))?> (<?=time_elapsed_string($post['updated_on'])?>)</time>

        <?php endif;

          if ($post['published_on'] || $post['updated_on'] > 1 hour ) {

            echo 'Old Post!';
        }
    ?>
    
</div>

问题是,我收到一个解析错误:“Parse error: syntax error, unexpected 'hour' (T_STRING)

有什么解决办法吗?

试试这个进行比较:

if($post['published_on'] < new DateTime('-1 hour') || new DateTime($post['updated_on']) < new DateTime('-1 hour')) {
    //... do stuff
}

对于大多数人类可读的字符串,如“-1 月”、“+1 年”等,它应该以类似的方式工作

您可以阅读更多关于 PHP DateTime

假设每条记录都有“published_on”日期和“updated_on”日期,您可以跳过检查“published_on”日期的年龄检查。

<div class="published">
<?php
if( !empty($post['updated_on'] )
    $age = $post['updated_on'];
else
    $age = $post['published_on'];
?>
    Published on: <time datetime="2021-02-24T21:05:55+00:00"><?=date('jS \o\f F \@ H:i', strtotime($post['published_on']))?> (<?=time_elapsed_string($post['published_on'])?>)</time><br>
        <?php if ($post['published_on'] != $post['updated_on']): ?>
            Updated on: <time datetime="2021-02-24T21:05:55+00:00"><?=date('jS \o\f F \@ H:i', strtotime($post['updated_on']))?> (<?=time_elapsed_string($post['updated_on'])?>)</time>
        <?php endif;
          if (new DateTime($age) < new DateTime('-6 months') ) {
            echo 'Old Post!';
        }
    ?>
</div>