X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/7f1521bf193b382565eb753043c161f4cb3fcda7..607b7e02d77e7326161e8ec15639052d2040f745:/wp-includes/date.php diff --git a/wp-includes/date.php b/wp-includes/date.php index 2e903a25..d1f85f8c 100644 --- a/wp-includes/date.php +++ b/wp-includes/date.php @@ -2,13 +2,13 @@ /** * Class for generating SQL clauses that filter a primary query according to date. * - * `WP_Date_Query` is a helper that allows primary query classes, such as {@see WP_Query}, - * to filter their results by date columns, by generating `WHERE` subclauses to be attached - * to the primary SQL query string. + * WP_Date_Query is a helper that allows primary query classes, such as WP_Query, to filter + * their results by date columns, by generating `WHERE` subclauses to be attached to the + * primary SQL query string. * * Attempting to filter by an invalid date value (eg month=13) will generate SQL that will * return no results. In these cases, a _doing_it_wrong() error notice is also thrown. - * See {@link WP_Date_Query::validate_date_values()}. + * See WP_Date_Query::validate_date_values(). * * @link https://codex.wordpress.org/Function_Reference/WP_Query Codex page. * @@ -18,7 +18,7 @@ class WP_Date_Query { /** * Array of date queries. * - * See {@see WP_Date_Query::__construct()} for information on date query arguments. + * See WP_Date_Query::__construct() for information on date query arguments. * * @since 3.7.0 * @access public @@ -355,10 +355,11 @@ class WP_Date_Query { // Weeks per year. if ( isset( $_year ) ) { - // If we have a specific year, use it to calculate number of weeks. - $date = new DateTime(); - $date->setISODate( $_year, 53 ); - $week_count = $date->format( "W" ) === "53" ? 53 : 52; + /* + * If we have a specific year, use it to calculate number of weeks. + * Note: the number of weeks in a year is the date in which Dec 28 appears. + */ + $week_count = date( 'W', mktime( 0, 0, 0, 12, 28, $_year ) ); } else { // Otherwise set the week-count to a maximum of 53. @@ -490,13 +491,13 @@ class WP_Date_Query { $valid_columns = array( 'post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt', 'comment_date', 'comment_date_gmt', - 'user_registered', + 'user_registered', 'registered', 'last_updated', ); // Attempt to detect a table prefix. if ( false === strpos( $column, '.' ) ) { /** - * Filter the list of valid date query columns. + * Filters the list of valid date query columns. * * @since 3.7.0 * @since 4.1.0 Added 'user_registered' to the default recognized columns. @@ -524,6 +525,10 @@ class WP_Date_Query { $wpdb->users => array( 'user_registered', ), + $wpdb->blogs => array( + 'registered', + 'last_updated', + ), ); // If it's a known column name, add the appropriate table prefix. @@ -554,7 +559,7 @@ class WP_Date_Query { $where = $sql['where']; /** - * Filter the date query WHERE clause. + * Filters the date query WHERE clause. * * @since 3.7.0 * @@ -567,8 +572,8 @@ class WP_Date_Query { /** * Generate SQL clauses to be appended to a main query. * - * Called by the public {@see WP_Date_Query::get_sql()}, this method - * is abstracted out to maintain parity with the other Query classes. + * Called by the public WP_Date_Query::get_sql(), this method is abstracted + * out to maintain parity with the other Query classes. * * @since 4.1.0 * @access protected @@ -852,7 +857,7 @@ class WP_Date_Query { * * You can pass an array of values (year, month, etc.) with missing parameter values being defaulted to * either the maximum or minimum values (controlled by the $default_to parameter). Alternatively you can - * pass a string that that will be run through strtotime(). + * pass a string that will be run through strtotime(). * * @since 3.7.0 * @access public @@ -991,7 +996,7 @@ class WP_Date_Query { $format = $time = ''; // Hour - if ( $hour ) { + if ( null !== $hour ) { $format .= '%H.'; $time .= sprintf( '%02d', $hour ) . '.'; } else {