我在博客文章中有它发布的日期和更新的时间(如果更新的话(。我需要添加另一个控件,用于检查发布或更新后的日期是否超过六个月。
在下面的例子中;大于1小时";只是看看有没有什么事发生。
如果是,则显示一个带有信息的DIV标签(我将关闭PHO并执行正常的<div class=""></div>
(。
所以,我需要的是:如果帖子没有一个";updated_ on";日期,基于";published_on";日期,并且如果该帖子确实具有";updated_ on";,基于此进行计算。
换句话说,它首先需要检查是否存在";updated_ on";如果没有;published_on";日期
这是我的代码:
<div class="published">
Published on: <time datetime="2021-02-24T21:05:55+00:00"><?=date('jS of 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 of 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错误说:";Parse error: syntax error, unexpected 'hour' (T_STRING)
";
有什么解决办法吗?
假设每个记录都有一个"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 of 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 of 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>
试试这个比较:
if($post['published_on'] < new DateTime('-1 hour') || new DateTime($post['updated_on']) < new DateTime('-1 hour')) {
//... do stuff
}
它应该类似地适用于大多数人类可读的字符串,如"-1个月"1年";等
您可以阅读更多关于PHP DateTime 的信息