You can use my plugin Posts Creation Limits which has a per user, per role, per post type, per post status limiting system and combined with its post_creation_limits_custom_checks
action hook and check if the user has created a post that day already - if so: show the the "limit reached message". For example:
add_action( 'post_creation_limits_custom_checks', 'post_per_day_limit' );
function post_per_day_limit( $type, $user_id ) {
global $bapl,$wpdb;
// safe check: Plugin installed?
! isset( $bapl ) AND _doing_it_wrong( __FUNCTION__, sprintf( 'You need to %sinstall the needed Plugin%s', '<a href="http://wordpress.org/extend/plugins/bainternet-posts-creation-limits/">', '</a>' ), 0 );
$time_in_days = 1; // 1 means in last day
$count = $wpdb->get_var(
$wpdb->prepare("
SELECT COUNT(*)
FROM $wpdb->posts
WHERE post_status = 'publish'
AND post_type = %s
AND post_author = %s
AND post_date >= DATE_SUB(CURDATE(),INTERVAL %s DAY)",
$type,
$user_id,
$time_in_days
)
);
if ( 0 < $count )
$count = number_format( $count );
// here you can check since we have the $count ex:
// limit for 2 posts a day
if ( 1 < $count ) {
// return limit reached message using the plugin class
exit( $bapl->bapl_not_allowed( 'you can not posts more them two posts a day' ) );
}
// else do nothing
}