According to the [**codex**](https://codex.wordpress.org/Function_Reference/get_most_recent_post_of_user), you're manipulating `get_most_recent_post_of_user()`'s returned value the wrong way. `get_most_recent_post_of_user()` directly returns the **post_date_gmt** among **blog_id**, **post_id**, and **post_gmt_ts**. So firstly, to get last post's date: $user_id = $post->post_author; $last_post = get_most_recent_post_of_user( $user_id ); $last_post_date = $last_post['post_date_gmt']; Then, get the **other** post's date to compare against the **last** post's date: $post_date = $post->post_date_gmt; Note that we now have 2 **GMT** string dates to deal with. For your comparaison, we'll convert them to timestamp: $last_post_date = strtotime( $last_post_date ); $post_date = strtotime( $post_date ); if ( ( $last_post_date - $post_date ) > 86400 ) return;