Make WordPress Core


Ignore:
Timestamp:
08/29/2019 11:17:30 PM (5 years ago)
Author:
SergeyBiryukov
Message:

Date/Time: Restore the previous behavior of date_i18n() where invalid input would result in current time.

Make wp_date() return false on invalid timestamp input, for consistency with upstream PHP date() function.

Props Rarst.
Fixes #28636.

File:
1 edited

Legend:

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

    r45909 r45914  
    164164 */
    165165function date_i18n( $format, $timestamp_with_offset = false, $gmt = false ) {
     166    $timestamp = $timestamp_with_offset;
     167
    166168    // If timestamp is omitted it should be current time (summed with offset, unless `$gmt` is true).
    167     $timestamp = $timestamp_with_offset ? $timestamp_with_offset : current_time( 'timestamp', $gmt );
     169    if ( ! is_numeric( $timestamp ) ) {
     170        $timestamp = current_time( 'timestamp', $gmt );
     171    }
    168172
    169173    /*
     
    219223 * @param DateTimeZone $timezone  Optional. Timezone to output result in. Defaults to timezone
    220224 *                                from site settings.
    221  * @return string The date, translated if locale specifies it.
     225 * @return string|false The date, translated if locale specifies it. False on invalid timestamp input.
    222226 */
    223227function wp_date( $format, $timestamp = null, $timezone = null ) {
    224228    global $wp_locale;
    225229
    226     if ( ! $timestamp ) {
     230    if ( null === $timestamp ) {
    227231        $timestamp = time();
     232    } elseif ( ! is_numeric( $timestamp ) ) {
     233        return false;
    228234    }
    229235
Note: See TracChangeset for help on using the changeset viewer.