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>
我的博客 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>