code: protected function months_dropdown( $post_type ) {
  		global $wpdb, $wp_locale;
  
  		$tn = $this->table->get_table_name( $wpdb );
  
  		$months = $wpdb->get_results( "
  			SELECT DISTINCT YEAR( time ) AS year, MONTH( time ) AS month
  			FROM $tn
  			ORDER BY time DESC
  		" );
  
  		$month_count = count( $months );
  
  		if ( ! $month_count || ( 1 == $month_count && 0 == $months[0]->month ) ) {
  			return;
  		}
  
  		$m = isset( $_GET['m'] ) ? (int) $_GET['m'] : 0;
  		?>
  		<label for="filter-by-date" class="screen-reader-text"><?php _e( 'Filter by date' ); ?></label>
  		<select name="m" id="filter-by-date">
  			<option<?php selected( $m, 0 ); ?> value="0"><?php _e( 'All dates' ); ?></option>
  			<?php
  			foreach ( $months as $arc_row ) {
  				if ( 0 == $arc_row->year ) {
  					continue;
  				}
  
  				$month = zeroise( $arc_row->month, 2 );
  				$year  = $arc_row->year;
  
  				printf( "<option %s value='%s'>%s</option>\n",
  					selected( $m, $year . $month, false ),
  					esc_attr( $arc_row->year . $month ),
  					/* translators: 1: month name, 2: 4-digit year */
  					sprintf( __( '%1$s %2$d' ), $wp_locale->get_month( $month ), $year )
  				);
  			}
  			?>
  		</select>
  		<?php
  	}
docs: Display a monthly dropdown for filtering items
  
  @since  3.1.0
  @access protected
  
  @global \wpdb      $wpdb
  @global \WP_Locale $wp_locale
  
  @param string      $post_type