Date/Time: Add support for the c and r shorthand formats in date_i18n().

Props Rarst, pbearne

Fixes #20973


git-svn-id: https://develop.svn.wordpress.org/trunk@43434 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
John Blackbourn 2018-07-05 23:10:01 +00:00
parent adbec850ef
commit f584b5755a
2 changed files with 25 additions and 0 deletions

View File

@ -107,6 +107,9 @@ function date_i18n( $dateformatstring, $timestamp_with_offset = false, $gmt = fa
*/
$req_format = $dateformatstring;
$dateformatstring = preg_replace( "/(?<!\\\\)c/", DATE_W3C, $dateformatstring );
$dateformatstring = preg_replace( "/(?<!\\\\)r/", DATE_RFC2822, $dateformatstring );
if ( ( ! empty( $wp_locale->month ) ) && ( ! empty( $wp_locale->weekday ) ) ) {
$datemonth = $wp_locale->get_month( date( 'm', $i ) );
$datemonth_abbrev = $wp_locale->get_month_abbrev( $datemonth );

View File

@ -83,4 +83,26 @@ class Tests_Date_I18n extends WP_UnitTestCase {
$this->assertEquals( $datetime->format( $timezone_formats ), date_i18n( $timezone_formats ) );
}
/**
* @dataProvider data_formats
* @ticket 20973
*/
public function test_date_i18n_handles_shorthand_formats( $short, $full ) {
$this->assertEquals( date_i18n( $full ), date_i18n( $short ) );
$this->assertEquals( $short, date_i18n( '\\' . $short ) );
}
public function data_formats() {
return array(
array(
'c',
'Y-m-d\TH:i:sP',
),
array(
'r',
'D, d M Y H:i:s O',
),
);
}
}