Make WordPress Core

Changeset 48912


Ignore:
Timestamp:
08/31/2020 03:56:41 PM (4 years ago)
Author:
SergeyBiryukov
Message:

Date/Time: Make sure get_the_date() and related functions return correct time if the format was specified as false.

Technically, the $format argument should always be a string, but passing false used to work before [47808], so this restores backward compatibility.

The list of affected functions:

  • get_the_date()
  • get_the_time()
  • get_comment_date()
  • get_comment_time()

Props wittich, Rarst, akabarikalpesh, SergeyBiryukov.
Fixes #51184.

Location:
trunk
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/comment-template.php

    r48695 r48912  
    553553    $comment = get_comment( $comment_ID );
    554554
    555     if ( '' === $format ) {
    556         $date = mysql2date( get_option( 'date_format' ), $comment->comment_date );
    557     } else {
    558         $date = mysql2date( $format, $comment->comment_date );
    559     }
     555    if ( ! is_string( $format ) || '' === $format ) {
     556        $format = get_option( 'date_format' );
     557    }
     558
     559    $date = mysql2date( $format, $comment->comment_date );
    560560
    561561    /**
     
    10471047    $comment_date = $gmt ? $comment->comment_date_gmt : $comment->comment_date;
    10481048
    1049     if ( '' === $format ) {
    1050         $date = mysql2date( get_option( 'time_format' ), $comment_date, $translate );
    1051     } else {
    1052         $date = mysql2date( $format, $comment_date, $translate );
    1053     }
     1049    if ( ! is_string( $format ) || '' === $format ) {
     1050        $format = get_option( 'time_format' );
     1051    }
     1052
     1053    $date = mysql2date( $format, $comment_date, $translate );
    10541054
    10551055    /**
  • trunk/src/wp-includes/general-template.php

    r48870 r48912  
    25262526    }
    25272527
    2528     if ( '' === $format ) {
    2529         $the_date = get_post_time( get_option( 'date_format' ), false, $post, true );
    2530     } else {
    2531         $the_date = get_post_time( $format, false, $post, true );
    2532     }
     2528    if ( ! is_string( $format ) || '' === $format ) {
     2529        $format = get_option( 'date_format' );
     2530    }
     2531
     2532    $the_date = get_post_time( $format, false, $post, true );
    25332533
    25342534    /**
     
    26552655    }
    26562656
    2657     if ( '' === $format ) {
    2658         $the_time = get_post_time( get_option( 'time_format' ), false, $post, true );
    2659     } else {
    2660         $the_time = get_post_time( $format, false, $post, true );
    2661     }
     2657    if ( ! is_string( $format ) || '' === $format ) {
     2658        $format = get_option( 'time_format' );
     2659    }
     2660
     2661    $the_time = get_post_time( $format, false, $post, true );
    26622662
    26632663    /**
  • trunk/tests/phpunit/tests/date/getPostTime.php

    r48911 r48912  
    1111     * @ticket 28310
    1212     */
    13     public function test_get_post_time_with_id_returns_correct_time() {
     13    public function test_get_post_time_returns_correct_time_with_post_id() {
    1414        $post_id = self::factory()->post->create( array( 'post_date' => '2014-03-01 16:35:00' ) );
     15
    1516        $this->assertEquals( '16:35:00', get_post_time( 'H:i:s', false, $post_id ) );
    1617    }
     
    2930     * @ticket 28310
    3031     */
    31     public function test_get_post_modified_time_with_id_returns_correct_time() {
     32    public function test_get_post_modified_time_returns_correct_time_with_post_id() {
    3233        $post_id = self::factory()->post->create( array( 'post_date' => '2014-03-01 16:35:00' ) );
     34
    3335        $this->assertEquals( '16:35:00', get_post_modified_time( 'H:i:s', false, $post_id ) );
    3436    }
  • trunk/tests/phpunit/tests/date/getTheDate.php

    r48911 r48912  
    1111     * @ticket 13771
    1212     */
    13     function test_get_the_date_with_id_returns_correct_time() {
     13    function test_get_the_date_returns_correct_time_with_post_id() {
    1414        $post_id = self::factory()->post->create( array( 'post_date' => '2014-03-01 16:35:00' ) );
     15
    1516        $this->assertEquals( 'March 1, 2014', get_the_date( 'F j, Y', $post_id ) );
    1617    }
     
    2728
    2829    /**
     30     * @ticket 51184
     31     */
     32    function test_get_the_date_returns_correct_time_with_empty_format() {
     33        $post_id = self::factory()->post->create( array( 'post_date' => '2020-08-29 01:51:00' ) );
     34
     35        $this->assertEquals( 'August 29, 2020', get_the_date( '', $post_id ) );
     36        $this->assertEquals( 'August 29, 2020', get_the_date( false, $post_id ) );
     37    }
     38
     39    /**
    2940     * @ticket 28310
    3041     */
    31     function test_get_the_time_with_id_returns_correct_time() {
     42    function test_get_the_time_returns_correct_time_with_post_id() {
    3243        $post_id = self::factory()->post->create( array( 'post_date' => '2014-03-01 16:35:00' ) );
     44
    3345        $this->assertEquals( '16:35:00', get_the_time( 'H:i:s', $post_id ) );
    3446    }
     
    4355        $this->assertFalse( get_the_time( 'h:i:s', 9 ) );
    4456    }
     57
     58    /**
     59     * @ticket 51184
     60     */
     61    function test_get_the_time_returns_correct_time_with_empty_format() {
     62        $post_id = self::factory()->post->create( array( 'post_date' => '2020-08-29 01:51:00' ) );
     63
     64        $this->assertEquals( '1:51 am', get_the_time( '', $post_id ) );
     65        $this->assertEquals( '1:51 am', get_the_time( false, $post_id ) );
     66    }
    4567}
Note: See TracChangeset for help on using the changeset viewer.