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;