查找POST_DATE和POST_DATE_GMT之间的小时数

时间:2020-05-12 作者:RubenGeert

我想找出post\\u date和post\\u date\\u gmt之间的时差,最好以小时为单位。

我试过了$age = date_diff(get_post_time(),get_post_time($gmt = true));

但这又回来了

Warning: date_diff() expects parameter 1 to be DateTimeInterface, int given in C:\\xampp\\htdocs\\t\\wp-content\\themes\\i\\single.php on line 23

我真的不理解关于这个函数的官方WP文档-它们是指“时间”还是“时间戳”?

基本原因是我滥用post\\u日期来存储上次更新日期,而gmt字段仍然包含原始发布日期。我知道这是错误的,但我需要一个快速而肮脏的解决方案来解决一个不同的问题。

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

如果您所需要做的只是检查差异,而不是显示或修改任何内容,那么您不需要对date_diff(). 您只需比较get_post_time() 对于每个日期。

get_post_time() 返回Unix timestamp 对于日期,它只是自1970年1月1日以来的秒数。因此,如果两个时间戳之间的差值大于86400秒,则差值大于24小时。

$difference = get_post_time( \'U\', true ) - get_post_time( \'U\', false );

if ( $difference > DAY_IN_SECONDS ) {
    // GMT date is over 24 hours more than post date.
}
此代码中的“U”表示get_post_time() 以Unix时间戳形式返回值。这是默认值,但我们需要将其设置为能够设置第二个参数,该参数告诉它是否使用post_datepost_date_gmt.

在此示例中DAY_IN_SECONDS 是一个WordPress constant 等于86400. 使用它可以使代码更具可读性,并且您不必在以后找出数字的含义。

相关推荐

如何使用php将html内容添加到自定义帖子类型的帖子中?

我正在尝试做一些我确信很基本的事情,但我不知道怎么做。设置如下:我使用CPT UI插件创建了一个名为board_docs, 我使用自定义字段插件为board\\u docs帖子类型创建了一个自定义字段。自定义字段允许您将文件添加为附件。添加此文件后,将创建一个新的永久链接(post)。当我点击永久链接时,页面是空的,只有页眉和页脚。How would I add an iframe (and other html content) to that page using php?我尝试在函数中使用循环hav