wp_maybe_decline_date
Determines if the date should be declined.
Description
(string) wp_maybe_decline_date( (string) $date );
If the locale specifies that month names require a genitive case in certain formats (like j F Y), the month name will be replaced with a correct form.
Returns (string)
The date, declined if locale specifies it.
Parameters (1)
- 0. $date (string)
- Formatted date string.
Usage
if ( !function_exists( 'wp_maybe_decline_date' ) ) { require_once ABSPATH . WPINC . '/functions.php'; } // Formatted date string. $date = ''; // NOTICE! Understand what this does before running. $result = wp_maybe_decline_date($date);
Defined (1)
The function is defined in the following location(s).
- /wp-includes/functions.php
- function wp_maybe_decline_date( $date ) {
- global $wp_locale;
- // i18n functions are not available in SHORTINIT mode
- if ( ! function_exists( '_x' ) ) {
- return $date;
- }
- /** translators: If months in your language require a genitive case,
- * translate this to 'on'. Do not translate into your own language.
- */
- if ( 'on' === _x( 'off', 'decline months names: on or off' ) ) {
- // Match a format like 'j F Y' or 'j. F'
- if ( @preg_match( '#^\d{1, 2}\.? [^\d ]+#u', $date ) ) {
- $months = $wp_locale->month;
- $months_genitive = $wp_locale->month_genitive;
- foreach ( $months as $key => $month ) {
- $months[ $key ] = '# ' . $month . '( |$)#u';
- }
- foreach ( $months_genitive as $key => $month ) {
- $months_genitive[ $key ] = ' ' . $month . '$1';
- }
- $date = preg_replace( $months, $months_genitive, $date );
- }
- }
- // Used for locale-specific rules
- $locale = get_locale();
- if ( 'ca' === $locale ) {
- // " de abril| de agost| de octubre..." -> " d'abril| d'agost| d'octubre..."
- $date = preg_replace( '# de ([ao])#i', " d'\\1", $date );
- }
- return $date;
- }