Как получать сообщения и комментарии в час, в год и в месяц?

У меня есть этот фрагмент:

function count_user_comments_today( $uid ){ global $wpdb; $today = date('Ym-d'); $tomorrow = date('Ym-d', time() + 86400); $count = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(*) FROM {$wpdb->comments} WHERE user_id = %d AND comment_date >= %s AND comment_date < %s ", $uid, $today, $tomorrow )); return $count; } 

Но это получить комментарии в день и для конкретного пользователя. Я хочу, чтобы он был общим, для всего сайта и в час, в год и в месяц …. Это возможно? Конечно, и должности, и не только комментарии.

Solutions Collecting From Web of "Как получать сообщения и комментарии в час, в год и в месяц?"

Для комментариев:

 function count_comments_in_period( $date_from, $date_to ){ global $wpdb; $count = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(*) FROM {$wpdb->comments} WHERE comment_date >= %s AND comment_date < %s ", $date_from, $date_to)); return $count; } 

Просто используйте даты в формате yyyy-mm-dd .

Для сообщений:

 function count_posts_in_period( $date_from, $date_to ){ global $wpdb; $count = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_date >= %s AND post_date < %s ", $date_from, $date_to)); return $count; } 

У меня нет времени, чтобы строить обе функции, и у меня нет времени, чтобы проверить это, но я думаю, что это по крайней мере близко:

 function funky_comment_query_wpse_108830($year, $month, $hour) { if (!empty($year)) { $sql[] = "YEAR(comment_date) = {$year}"; } if (!empty($month)) { $sql[] = "MONTH(comment_date) = {$month}"; } if (!empty($hour)) { $sql[] = "HOUR(comment_date) = {$hour}"; } if (empty($sql)) { return; } global $wpdb; $sql = implode(' AND ',$sql); $count = $wpdb->get_var("SELECT count(comment_ID) FROM {$wpdb->comments} WHERE {$sql}"); return $count; } echo funky_comment_query_wpse_108830('2013','','');