List users with the most posts in the last 30 days

Here is what you need.

<?php
    $date = new DateTime('NOW');
    $date->sub(new DateInterval('P30D'));  //30 Days Interval
    echo $back30days= $date->format('Y-m-d H:i:s') . "\n";

    global $wpdp;
    $top_users = $wpdb->get_results("select count(users.user_nicename) as posts, users.user_nicename as user_name from $wpdb->users as users join $wpdb->posts as posts where users.ID = posts.post_author AND posts.post_status="publish" AND posts.post_date_gmt > '$back30days' GROUP BY users.user_nicename ORDER BY count(users.user_nicename) DESC"); 

    echo '<h3>In Past 30 Days</h3>';
    foreach ($top_users as $top_user){
        echo '<p>'.$top_user->user_name.' has written '.$top_user->posts.' posts</p>';
    }
?>