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. Merges [48912] to the 5.5 branch. Fixes #51184. git-svn-id: https://develop.svn.wordpress.org/branches/5.5@48921 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
0318feb679
commit
01c896073d
@ -552,12 +552,12 @@ function get_comment_class( $class = '', $comment_id = null, $post_id = null ) {
|
||||
function get_comment_date( $format = '', $comment_ID = 0 ) {
|
||||
$comment = get_comment( $comment_ID );
|
||||
|
||||
if ( '' === $format ) {
|
||||
$date = mysql2date( get_option( 'date_format' ), $comment->comment_date );
|
||||
} else {
|
||||
$date = mysql2date( $format, $comment->comment_date );
|
||||
if ( ! is_string( $format ) || '' === $format ) {
|
||||
$format = get_option( 'date_format' );
|
||||
}
|
||||
|
||||
$date = mysql2date( $format, $comment->comment_date );
|
||||
|
||||
/**
|
||||
* Filters the returned comment date.
|
||||
*
|
||||
@ -1046,12 +1046,12 @@ function get_comment_time( $format = '', $gmt = false, $translate = true ) {
|
||||
|
||||
$comment_date = $gmt ? $comment->comment_date_gmt : $comment->comment_date;
|
||||
|
||||
if ( '' === $format ) {
|
||||
$date = mysql2date( get_option( 'time_format' ), $comment_date, $translate );
|
||||
} else {
|
||||
$date = mysql2date( $format, $comment_date, $translate );
|
||||
if ( ! is_string( $format ) || '' === $format ) {
|
||||
$format = get_option( 'time_format' );
|
||||
}
|
||||
|
||||
$date = mysql2date( $format, $comment_date, $translate );
|
||||
|
||||
/**
|
||||
* Filters the returned comment time.
|
||||
*
|
||||
|
@ -2525,12 +2525,12 @@ function get_the_date( $format = '', $post = null ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( '' === $format ) {
|
||||
$the_date = get_post_time( get_option( 'date_format' ), false, $post, true );
|
||||
} else {
|
||||
$the_date = get_post_time( $format, false, $post, true );
|
||||
if ( ! is_string( $format ) || '' === $format ) {
|
||||
$format = get_option( 'date_format' );
|
||||
}
|
||||
|
||||
$the_date = get_post_time( $format, false, $post, true );
|
||||
|
||||
/**
|
||||
* Filters the date a post was published.
|
||||
*
|
||||
@ -2654,12 +2654,12 @@ function get_the_time( $format = '', $post = null ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( '' === $format ) {
|
||||
$the_time = get_post_time( get_option( 'time_format' ), false, $post, true );
|
||||
} else {
|
||||
$the_time = get_post_time( $format, false, $post, true );
|
||||
if ( ! is_string( $format ) || '' === $format ) {
|
||||
$format = get_option( 'time_format' );
|
||||
}
|
||||
|
||||
$the_time = get_post_time( $format, false, $post, true );
|
||||
|
||||
/**
|
||||
* Filters the time a post was written.
|
||||
*
|
||||
|
49
tests/phpunit/tests/date/getCommentDate.php
Normal file
49
tests/phpunit/tests/date/getCommentDate.php
Normal file
@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @group date
|
||||
* @group datetime
|
||||
* @group comment
|
||||
*/
|
||||
class Tests_Date_Get_Comment_Date extends WP_UnitTestCase {
|
||||
|
||||
/**
|
||||
* @ticket 51184
|
||||
*/
|
||||
function test_get_comment_date_returns_correct_time_with_comment_id() {
|
||||
$c = self::factory()->comment->create( array( 'comment_date' => '2020-08-29 01:51:00' ) );
|
||||
|
||||
$this->assertEquals( 'August 29, 2020', get_comment_date( 'F j, Y', $c ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 51184
|
||||
*/
|
||||
function test_get_comment_date_returns_correct_time_with_empty_format() {
|
||||
$c = self::factory()->comment->create( array( 'comment_date' => '2020-08-29 01:51:00' ) );
|
||||
|
||||
$this->assertEquals( 'August 29, 2020', get_comment_date( '', $c ) );
|
||||
$this->assertEquals( 'August 29, 2020', get_comment_date( false, $c ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 51184
|
||||
*/
|
||||
function test_get_comment_time_returns_correct_time() {
|
||||
$c = self::factory()->comment->create( array( 'comment_date' => '2020-08-29 01:51:00' ) );
|
||||
|
||||
$GLOBALS['comment'] = get_comment( $c );
|
||||
$this->assertEquals( '1:51 am', get_comment_time( 'g:i a' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 51184
|
||||
*/
|
||||
function test_get_comment_time_returns_correct_time_with_empty_format() {
|
||||
$c = self::factory()->comment->create( array( 'comment_date' => '2020-08-29 01:51:00' ) );
|
||||
|
||||
$GLOBALS['comment'] = get_comment( $c );
|
||||
$this->assertEquals( '1:51 am', get_comment_time( '' ) );
|
||||
$this->assertEquals( '1:51 am', get_comment_time( false ) );
|
||||
}
|
||||
}
|
@ -10,8 +10,9 @@ class Tests_Date_Get_Post_Time extends WP_UnitTestCase {
|
||||
/**
|
||||
* @ticket 28310
|
||||
*/
|
||||
public function test_get_post_time_with_id_returns_correct_time() {
|
||||
public function test_get_post_time_returns_correct_time_with_post_id() {
|
||||
$post_id = self::factory()->post->create( array( 'post_date' => '2014-03-01 16:35:00' ) );
|
||||
|
||||
$this->assertEquals( '16:35:00', get_post_time( 'H:i:s', false, $post_id ) );
|
||||
}
|
||||
|
||||
@ -28,8 +29,9 @@ class Tests_Date_Get_Post_Time extends WP_UnitTestCase {
|
||||
/**
|
||||
* @ticket 28310
|
||||
*/
|
||||
public function test_get_post_modified_time_with_id_returns_correct_time() {
|
||||
public function test_get_post_modified_time_returns_correct_time_with_post_id() {
|
||||
$post_id = self::factory()->post->create( array( 'post_date' => '2014-03-01 16:35:00' ) );
|
||||
|
||||
$this->assertEquals( '16:35:00', get_post_modified_time( 'H:i:s', false, $post_id ) );
|
||||
}
|
||||
|
||||
|
@ -10,8 +10,9 @@ class Tests_Date_Get_The_Date extends WP_UnitTestCase {
|
||||
/**
|
||||
* @ticket 13771
|
||||
*/
|
||||
function test_get_the_date_with_id_returns_correct_time() {
|
||||
function test_get_the_date_returns_correct_time_with_post_id() {
|
||||
$post_id = self::factory()->post->create( array( 'post_date' => '2014-03-01 16:35:00' ) );
|
||||
|
||||
$this->assertEquals( 'March 1, 2014', get_the_date( 'F j, Y', $post_id ) );
|
||||
}
|
||||
|
||||
@ -25,11 +26,22 @@ class Tests_Date_Get_The_Date extends WP_UnitTestCase {
|
||||
$this->assertFalse( get_the_date( 'F j, Y h:i:s', 9 ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 51184
|
||||
*/
|
||||
function test_get_the_date_returns_correct_time_with_empty_format() {
|
||||
$post_id = self::factory()->post->create( array( 'post_date' => '2020-08-29 01:51:00' ) );
|
||||
|
||||
$this->assertEquals( 'August 29, 2020', get_the_date( '', $post_id ) );
|
||||
$this->assertEquals( 'August 29, 2020', get_the_date( false, $post_id ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 28310
|
||||
*/
|
||||
function test_get_the_time_with_id_returns_correct_time() {
|
||||
function test_get_the_time_returns_correct_time_with_post_id() {
|
||||
$post_id = self::factory()->post->create( array( 'post_date' => '2014-03-01 16:35:00' ) );
|
||||
|
||||
$this->assertEquals( '16:35:00', get_the_time( 'H:i:s', $post_id ) );
|
||||
}
|
||||
|
||||
@ -42,4 +54,14 @@ class Tests_Date_Get_The_Date extends WP_UnitTestCase {
|
||||
$this->assertFalse( get_the_time( '', 9 ) );
|
||||
$this->assertFalse( get_the_time( 'h:i:s', 9 ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 51184
|
||||
*/
|
||||
function test_get_the_time_returns_correct_time_with_empty_format() {
|
||||
$post_id = self::factory()->post->create( array( 'post_date' => '2020-08-29 01:51:00' ) );
|
||||
|
||||
$this->assertEquals( '1:51 am', get_the_time( '', $post_id ) );
|
||||
$this->assertEquals( '1:51 am', get_the_time( false, $post_id ) );
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user