Make WordPress Core

Ticket #49038: 49038-settings-dst-transition-time.patch

File 49038-settings-dst-transition-time.patch, 1.9 KB (added by Rarst, 5 years ago)
  • src/wp-admin/options-general.php

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
     
    276276        ?>
    277277        <br />
    278278        <?php
    279         $allowed_zones = timezone_identifiers_list();
     279        if ( in_array( $tzstring, timezone_identifiers_list() ) ) {
     280                $transitions = timezone_transitions_get( timezone_open( $tzstring ), time() );
    280281
    281         if ( in_array( $tzstring, $allowed_zones ) ) {
    282                 $found                   = false;
    283                 $date_time_zone_selected = new DateTimeZone( $tzstring );
    284                 $tz_offset               = timezone_offset_get( $date_time_zone_selected, date_create() );
    285                 $right_now               = time();
    286                 foreach ( timezone_transitions_get( $date_time_zone_selected ) as $tr ) {
    287                         if ( $tr['ts'] > $right_now ) {
    288                                 $found = true;
    289                                 break;
    290                         }
    291                 }
    292 
    293                 if ( $found ) {
     282                // 0 index is state at current time, 1 index is next closest transition if any.
     283                if ( ! empty( $transitions[1] ) ) {
    294284                        echo ' ';
    295                         $message = $tr['isdst'] ?
     285                        $message = $transitions[1]['isdst'] ?
    296286                                /* translators: %s: Date and time. */
    297287                                __( 'Daylight saving time begins on: %s.' ) :
    298288                                /* translators: %s: Date and time. */
    299289                                __( 'Standard time begins on: %s.' );
    300                         // Add the difference between the current offset and the new offset to ts to get the correct transition time from date_i18n().
    301290                        printf(
    302291                                $message,
    303                                 '<code>' . date_i18n(
    304                                         __( 'F j, Y' ) . ' ' . __( 'g:i a' ),
    305                                         $tr['ts'] + ( $tz_offset - $tr['offset'] )
    306                                 ) . '</code>'
     292                                '<code>' . wp_date( __( 'F j, Y' ) . ' ' . __( 'g:i a' ), $transitions[1]['ts'] ) . '</code>'
    307293                        );
    308294                } else {
    309295                        _e( 'This timezone does not observe daylight saving time.' );