WordPress.org

Make WordPress Core

Ticket #10660: datetime-and-timezone-suggest.patch

File datetime-and-timezone-suggest.patch, 22.2 KB (added by sambauers, 5 years ago)
  • wp-admin.css

     
    31143114        border-bottom-style: solid; 
    31153115} 
    31163116 
    3117 #utc-time, #local-time { 
    3118         padding-left: 25px; 
     3117#timezone_suggest_working { 
     3118        padding-bottom: 4px; 
     3119        vertical-align: bottom; 
     3120        display: none; 
     3121} 
     3122 
     3123#timezone_suggest_result { 
     3124        display: none; 
     3125        color: #f00; 
     3126} 
     3127 
     3128#time-info { 
     3129        -moz-border-radius: 4px; 
     3130        -khtml-border-radius: 4px; 
     3131        -webkit-border-radius: 4px; 
     3132        border-radius: 4px; 
     3133        background-color: rgb(223, 223, 223); 
     3134        color: rgb(102, 102, 102); 
     3135        margin: 10px 0; 
     3136        float: left; 
     3137} 
     3138 
     3139#time-info caption { 
     3140        line-height: 1.2em; 
     3141        padding: 4px 6px; 
     3142        margin: 0; 
     3143        font-weight: bold; 
     3144        text-align: left; 
     3145} 
     3146 
     3147#time-info th { 
     3148        line-height: 1.2em; 
     3149        padding: 0 2px 4px 6px; 
     3150        margin: 0; 
     3151        text-align: right; 
     3152        width: auto; 
     3153        text-shadow: none; 
     3154        color: rgb(102, 102, 102); 
     3155} 
     3156 
     3157#time-info td { 
     3158        line-height: 1.2em; 
     3159        padding: 0 6px 4px 0; 
     3160        margin: 0; 
    31193161        font-style: italic; 
    3120         font-family: "Lucida Grande", Verdana, Arial, "Bitstream Vera Sans", sans-serif; 
    31213162} 
    31223163 
    31233164ul#dismissed-updates { 
  • options-general.php

     
    99/** WordPress Administration Bootstrap */ 
    1010require_once('./admin.php'); 
    1111 
    12 if ( ! current_user_can('manage_options') ) 
    13         wp_die(__('You do not have sufficient permissions to manage options for this blog.')); 
    14  
    1512$title = __('General Settings'); 
    1613$parent_file = 'options-general.php'; 
    17 /* translators: date and time format for exact current time, mainly about timezones, see http://php.net/date */ 
    18 $timezone_format = _x('Y-m-d G:i:s', 'timezone date format'); 
    1914 
    20 /** 
    21  * Display JavaScript on the page. 
    22  * 
    23  * @package WordPress 
    24  * @subpackage General_Settings_Panel 
    25  */ 
    26 function add_js() { 
    27 ?> 
    28 <script type="text/javascript"> 
    29 //<![CDATA[ 
    30         jQuery(document).ready(function($){ 
    31                 $("input[name='date_format']").click(function(){ 
    32                         if ( "date_format_custom_radio" != $(this).attr("id") ) 
    33                                 $("input[name='date_format_custom']").val( $(this).val() ); 
    34                 }); 
    35                 $("input[name='date_format_custom']").focus(function(){ 
    36                         $("#date_format_custom_radio").attr("checked", "checked"); 
    37                 }); 
    38  
    39                 $("input[name='time_format']").click(function(){ 
    40                         if ( "time_format_custom_radio" != $(this).attr("id") ) 
    41                                 $("input[name='time_format_custom']").val( $(this).val() ); 
    42                 }); 
    43                 $("input[name='time_format_custom']").focus(function(){ 
    44                         $("#time_format_custom_radio").attr("checked", "checked"); 
    45                 }); 
    46         }); 
    47 //]]> 
    48 </script> 
    49 <?php 
    50 } 
    51 add_filter('admin_head', 'add_js'); 
    52  
    5315include('./admin-header.php'); 
    5416?> 
    5517 
     
    9759<select name="default_role" id="default_role"><?php wp_dropdown_roles( get_option('default_role') ); ?></select> 
    9860</td> 
    9961</tr> 
    100 <tr> 
    101 <?php 
    102 if ( !wp_timezone_supported() ) : // no magic timezone support here 
    103 ?> 
    104 <th scope="row"><label for="gmt_offset"><?php _e('Timezone') ?> </label></th> 
    105 <td> 
    106 <select name="gmt_offset" id="gmt_offset"> 
    107 <?php 
    108 $current_offset = get_option('gmt_offset'); 
    109 $offset_range = array (-12, -11.5, -11, -10.5, -10, -9.5, -9, -8.5, -8, -7.5, -7, -6.5, -6, -5.5, -5, -4.5, -4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5, 
    110         0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 5.75, 6, 6.5, 7, 7.5, 8, 8.5, 8.75, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.75, 13, 13.75, 14); 
    111 foreach ( $offset_range as $offset ) { 
    112         if ( 0 < $offset ) 
    113                 $offset_name = '+' . $offset; 
    114         elseif ( 0 == $offset ) 
    115                 $offset_name = ''; 
    116         else 
    117                 $offset_name = (string) $offset; 
    118  
    119         $offset_name = str_replace(array('.25','.5','.75'), array(':15',':30',':45'), $offset_name); 
    120  
    121         $selected = ''; 
    122         if ( $current_offset == $offset ) { 
    123                 $selected = " selected='selected'"; 
    124                 $current_offset_name = $offset_name; 
    125         } 
    126         echo "<option value=\"" . esc_attr($offset) . "\"$selected>" . sprintf(__('UTC %s'), $offset_name) . '</option>'; 
    127 } 
    128 ?> 
    129 </select> 
    130 <?php _e('hours'); ?> 
    131 <span id="utc-time"><?php printf(__('<abbr title="Coordinated Universal Time">UTC</abbr> time is <code>%s</code>'), date_i18n( $time_format, false, 'gmt')); ?></span> 
    132 <?php if ($current_offset) : ?> 
    133         <span id="local-time"><?php printf(__('UTC %1$s is <code>%2$s</code>'), $current_offset_name, date_i18n($time_format)); ?></span> 
    134 <?php endif; ?> 
    135 <br /> 
    136 <span class="description"><?php _e('Unfortunately, you have to manually update this for Daylight Savings Time. Lame, we know, but will be fixed in the future.'); ?></span> 
    137 </td> 
    138 <?php 
    139 else: // looks like we can do nice timezone selection! 
    140 $current_offset = get_option('gmt_offset'); 
    141 $tzstring = get_option('timezone_string'); 
    142 if (empty($tzstring)) { // set the Etc zone if no timezone string exists 
    143         if ($current_offset < 0) $offnum = - ceil($current_offset); 
    144         else $offnum = - floor($current_offset); 
    145         $tzstring = 'Etc/GMT' . (($offnum >= 0) ? '+' : '') . $offnum; 
    146 } 
    147 ?> 
    148 <th scope="row"><label for="timezone_string"><?php _e('Timezone') ?></label></th> 
    149 <td> 
    150  
    151 <select id="timezone_string" name="timezone_string"> 
    152 <?php echo wp_timezone_choice($tzstring); ?> 
    153 </select> 
    154  
    155     <span id="utc-time"><?php printf(__('<abbr title="Coordinated Universal Time">UTC</abbr> time is <code>%s</code>'), date_i18n($timezone_format, false, 'gmt')); ?></span> 
    156 <?php if (get_option('timezone_string')) : ?> 
    157         <span id="local-time"><?php printf(__('Local time is <code>%1$s</code>'), date_i18n($timezone_format)); ?></span> 
    158 <?php endif; ?> 
    159 <br /> 
    160 <span class="description"><?php _e('Choose a city in the same timezone as you.'); ?></span> 
    161 <br /> 
    162 <span> 
    163 <?php if ($tzstring) : ?> 
    164         <?php 
    165         $now = localtime(time(),true); 
    166         if ($now['tm_isdst']) _e('This timezone is currently in daylight savings time.'); 
    167         else _e('This timezone is currently in standard time.'); 
    168         ?> 
    169         <br /> 
    170         <?php 
    171         if (function_exists('timezone_transitions_get')) { 
    172                 $dateTimeZoneSelected = new DateTimeZone($tzstring); 
    173                 foreach (timezone_transitions_get($dateTimeZoneSelected) as $tr) { 
    174                         if ($tr['ts'] > time()) { 
    175                             $found = true; 
    176                                 break; 
    177                         } 
    178                 } 
    179  
    180                 if ( isset($found) && $found === true ) { 
    181                         echo ' '; 
    182                         $message = $tr['isdst'] ? 
    183                                 __('Daylight savings time begins on: <code>%s</code>.') : 
    184                                 __('Standard time begins  on: <code>%s</code>.'); 
    185                         printf( $message, date_i18n(get_option('date_format').' '.get_option('time_format'), $tr['ts'] ) ); 
    186                 } else { 
    187                         _e('This timezone does not observe daylight savings time.'); 
    188                 } 
    189         } 
    190         ?> 
    191         </span> 
    192 <?php endif; ?> 
    193 </td> 
    194  
    195 <?php endif; ?> 
    196 </tr> 
    197 <tr> 
    198 <th scope="row"><?php _e('Date Format') ?></th> 
    199 <td> 
    200         <fieldset><legend class="screen-reader-text"><span><?php _e('Date Format') ?></span></legend> 
    201 <?php 
    202  
    203         $date_formats = apply_filters( 'date_formats', array( 
    204                 __('F j, Y'), 
    205                 'Y/m/d', 
    206                 'm/d/Y', 
    207                 'd/m/Y', 
    208         ) ); 
    209  
    210         $custom = TRUE; 
    211  
    212         foreach ( $date_formats as $format ) { 
    213                 echo "\t<label title='" . esc_attr($format) . "'><input type='radio' name='date_format' value='" . esc_attr($format) . "'"; 
    214                 if ( get_option('date_format') === $format ) { // checked() uses "==" rather than "===" 
    215                         echo " checked='checked'"; 
    216                         $custom = FALSE; 
    217                 } 
    218                 echo ' /> ' . date_i18n( $format ) . "</label><br />\n"; 
    219         } 
    220  
    221         echo '  <label><input type="radio" name="date_format" id="date_format_custom_radio" value="\c\u\s\t\o\m"'; 
    222         checked( $custom ); 
    223         echo '/> ' . __('Custom:') . ' </label><input type="text" name="date_format_custom" value="' . esc_attr( get_option('date_format') ) . '" class="small-text" /> ' . date_i18n( get_option('date_format') ) . "\n"; 
    224  
    225         echo "\t<p>" . __('<a href="http://codex.wordpress.org/Formatting_Date_and_Time">Documentation on date formatting</a>. Click &#8220;Save Changes&#8221; to update sample output.') . "</p>\n"; 
    226 ?> 
    227         </fieldset> 
    228 </td> 
    229 </tr> 
    230 <tr> 
    231 <th scope="row"><?php _e('Time Format') ?></th> 
    232 <td> 
    233         <fieldset><legend class="screen-reader-text"><span><?php _e('Time Format') ?></span></legend> 
    234 <?php 
    235  
    236         $time_formats = apply_filters( 'time_formats', array( 
    237                 __('g:i a'), 
    238                 'g:i A', 
    239                 'H:i', 
    240         ) ); 
    241  
    242         $custom = TRUE; 
    243  
    244         foreach ( $time_formats as $format ) { 
    245                 echo "\t<label title='" . esc_attr($format) . "'><input type='radio' name='time_format' value='" . esc_attr($format) . "'"; 
    246                 if ( get_option('time_format') === $format ) { // checked() uses "==" rather than "===" 
    247                         echo " checked='checked'"; 
    248                         $custom = FALSE; 
    249                 } 
    250                 echo ' /> ' . date_i18n( $format ) . "</label><br />\n"; 
    251         } 
    252  
    253         echo '  <label><input type="radio" name="time_format" id="time_format_custom_radio" value="\c\u\s\t\o\m"'; 
    254         checked( $custom ); 
    255         echo '/> ' . __('Custom:') . ' </label><input type="text" name="time_format_custom" value="' . esc_attr( get_option('time_format') ) . '" class="small-text" /> ' . date_i18n( get_option('time_format') ) . "\n"; 
    256 ?> 
    257         </fieldset> 
    258 </td> 
    259 </tr> 
    260 <tr> 
    261 <th scope="row"><label for="start_of_week"><?php _e('Week Starts On') ?></label></th> 
    262 <td><select name="start_of_week" id="start_of_week"> 
    263 <?php 
    264 for ($day_index = 0; $day_index <= 6; $day_index++) : 
    265         $selected = (get_option('start_of_week') == $day_index) ? 'selected="selected"' : ''; 
    266         echo "\n\t<option value='" . esc_attr($day_index) . "' $selected>" . $wp_locale->get_weekday($day_index) . '</option>'; 
    267 endfor; 
    268 ?> 
    269 </select></td> 
    270 </tr> 
    27162<?php do_settings_fields('general', 'default'); ?> 
    27263</table> 
    27364 
  • menu.php

     
    106106 
    107107$menu[80] = array( __('Settings'), 'manage_options', 'options-general.php', '', 'menu-top', 'menu-settings', 'div' ); 
    108108        $submenu['options-general.php'][10] = array(__('General'), 'manage_options', 'options-general.php'); 
     109        $submenu['options-general.php'][12] = array(__('Date and Time'), 'manage_options', 'options-datetime.php'); 
    109110        $submenu['options-general.php'][15] = array(__('Writing'), 'manage_options', 'options-writing.php'); 
    110111        $submenu['options-general.php'][20] = array(__('Reading'), 'manage_options', 'options-reading.php'); 
    111112        $submenu['options-general.php'][25] = array(__('Discussion'), 'manage_options', 'options-discussion.php'); 
  • options.php

     
    2222wp_reset_vars(array('action')); 
    2323 
    2424$whitelist_options = array( 
    25         'general' => array( 'blogname', 'blogdescription', 'admin_email', 'users_can_register', 'gmt_offset', 'date_format', 'time_format', 'start_of_week', 'default_role', 'timezone_string' ), 
     25        'general' => array( 'blogname', 'blogdescription', 'admin_email', 'users_can_register', 'default_role' ), 
     26        'datetime' => array( 'gmt_offset', 'date_format', 'time_format', 'start_of_week', 'timezone_string' ), 
    2627        'discussion' => array( 'default_pingback_flag', 'default_ping_status', 'default_comment_status', 'comments_notify', 'moderation_notify', 'comment_moderation', 'require_name_email', 'comment_whitelist', 'comment_max_links', 'moderation_keys', 'blacklist_keys', 'show_avatars', 'avatar_rating', 'avatar_default', 'close_comments_for_old_posts', 'close_comments_days_old', 'thread_comments', 'thread_comments_depth', 'page_comments', 'comments_per_page', 'default_comments_page', 'comment_order', 'comment_registration' ), 
    2728        'misc' => array( 'use_linksupdate', 'uploads_use_yearmonth_folders', 'upload_path', 'upload_url_path' ), 
    2829        'media' => array( 'thumbnail_size_w', 'thumbnail_size_h', 'thumbnail_crop', 'medium_size_w', 'medium_size_h', 'large_size_w', 'large_size_h', 'image_default_size', 'image_default_align', 'image_default_link_type' ), 
     
    6061        } 
    6162 
    6263        // Handle custom date/time formats 
    63         if ( 'general' == $option_page ) { 
     64        if ( 'datetime' == $option_page ) { 
    6465                if ( !empty($_POST['date_format']) && isset($_POST['date_format_custom']) && '\c\u\s\t\o\m' == stripslashes( $_POST['date_format'] ) ) 
    6566                        $_POST['date_format'] = $_POST['date_format_custom']; 
    6667                if ( !empty($_POST['time_format']) && isset($_POST['time_format_custom']) && '\c\u\s\t\o\m' == stripslashes( $_POST['time_format'] ) ) 
  • options-datetime.php

     
     1<?php 
     2/** 
     3 * Date and time settings administration panel. 
     4 * 
     5 * @package WordPress 
     6 * @subpackage Administration 
     7 */ 
     8 
     9/** WordPress Administration Bootstrap */ 
     10require_once( './admin.php' ); 
     11 
     12if ( !current_user_can( 'manage_options' ) ) { 
     13        wp_die( __( 'You do not have sufficient permissions to manage options for this blog.' ) ); 
     14} 
     15 
     16$title = __( 'Date and Time Settings' ); 
     17$parent_file = 'options-general.php'; 
     18/* translators: date and time format for exact current time, mainly about timezones, see http://php.net/date */ 
     19$timezone_format = _x( 'Y-m-d G:i:s', 'timezone date format' ); 
     20 
     21/** 
     22 * Display JavaScript on the page. 
     23 * 
     24 * @package WordPress 
     25 * @subpackage General_Settings_Panel 
     26 */ 
     27function add_js() { 
     28?> 
     29<script type="text/javascript"> 
     30//<![CDATA[ 
     31        jQuery(document).ready(function($){ 
     32                $("input[name='date_format']").click(function(){ 
     33                        if ( "date_format_custom_radio" != $(this).attr("id") ) 
     34                                $("input[name='date_format_custom']").val( $(this).val() ); 
     35                }); 
     36                $("input[name='date_format_custom']").focus(function(){ 
     37                        $("#date_format_custom_radio").attr("checked", "checked"); 
     38                }); 
     39 
     40                $("input[name='time_format']").click(function(){ 
     41                        if ( "time_format_custom_radio" != $(this).attr("id") ) 
     42                                $("input[name='time_format_custom']").val( $(this).val() ); 
     43                }); 
     44                $("input[name='time_format_custom']").focus(function(){ 
     45                        $("#time_format_custom_radio").attr("checked", "checked"); 
     46                }); 
     47                $("#timezone_suggest").click(function(){ 
     48                        $("#timezone_suggest_working").animate({opacity:'show'},500); 
     49                        $.ajax({ 
     50                                type: 'GET', 
     51                                dataType: 'jsonp', 
     52                                url: 'http://api.wordpress.org/core/ip-to-zoneinfo/1.0/', 
     53                                success: function(data){ 
     54                                        if (data.errorcode) { 
     55                                                $("#timezone_suggest_result").text('<?php _e('Suggestion failed'); ?>'); 
     56                                        } else { 
     57                                                $("#timezone_string").val(data.timezoneId); 
     58                                                $("#timezone_suggest_result").text('<?php _e('Suggestion provided'); ?>'); 
     59                                        } 
     60                                        $("#timezone_suggest_working").animate( 
     61                                                {opacity:'hide'}, 
     62                                                500, 
     63                                                'linear', 
     64                                                function(){ 
     65                                                        $("#timezone_suggest_result").animate({opacity:'show'},1000); 
     66                                                        $("#timezone_suggest_result").animate({opacity:'hide'},3000); 
     67                                                } 
     68                                        ); 
     69                                } 
     70                        }); 
     71                }); 
     72        }); 
     73//]]> 
     74</script> 
     75<?php 
     76} 
     77add_filter('admin_head', 'add_js'); 
     78 
     79include('./admin-header.php'); 
     80?> 
     81 
     82<div class="wrap"> 
     83<?php screen_icon(); ?> 
     84<h2><?php echo esc_html( $title ); ?></h2> 
     85 
     86<form method="post" action="options.php"> 
     87<?php settings_fields('datetime'); ?> 
     88 
     89<table class="form-table"> 
     90<?php 
     91if ( !wp_timezone_supported() ) : 
     92        // no magic timezone support here 
     93?> 
     94<tr> 
     95        <th scope="row"><label for="gmt_offset"><?php _e('Time zone') ?> </label></th> 
     96        <td> 
     97                <select name="gmt_offset" id="gmt_offset"> 
     98<?php 
     99        $current_offset = get_option('gmt_offset'); 
     100        $offset_range = array ( 
     101                -12, -11.5, -11, -10.5, 
     102                -10, -9.5, -9, -8.5, -8, -7.5, -7, -6.5, -6, -5.5, 
     103                -5, -4.5, -4, -3.5, -3, -2.5, -2, -1.5, -1, -0.5, 
     104                0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 
     105                5, 5.5, 5.75, 6, 6.5, 7, 7.5, 8, 8.5, 8.75, 9, 9.5, 
     106                10, 10.5, 11, 11.5, 12, 12.75, 13, 13.75, 14 
     107        ); 
     108        foreach ( $offset_range as $offset ) { 
     109                if ( 0 < $offset ) { 
     110                        $offset_name = '+' . $offset; 
     111                } elseif ( 0 == $offset ) { 
     112                        $offset_name = ''; 
     113                } else { 
     114                        $offset_name = (string) $offset; 
     115                } 
     116 
     117                $offset_name = str_replace( 
     118                        array( '.25','.5','.75' ), 
     119                        array( ':15',':30',':45' ), 
     120                        $offset_name 
     121                ); 
     122 
     123                $selected = ''; 
     124                if ( $current_offset == $offset ) { 
     125                        $selected = " selected='selected'"; 
     126                        $current_offset_name = $offset_name; 
     127                } 
     128                echo "<option value=\"" . esc_attr($offset) . "\"$selected>" . sprintf(__('UTC %s'), $offset_name) . '</option>' . "\n"; 
     129        } 
     130?> 
     131                </select> 
     132                <?php _e('hours'); ?><br /> 
     133                <span class="description"><?php _e('Unfortunately, you have to manually update this for Daylight Savings Time.'); ?></span><br /> 
     134                <div id="time-info"> 
     135                        <table> 
     136                                <caption><?php _e('Current time'); ?></caption> 
     137                                <tbody> 
     138                                        <tr> 
     139                                                <th><?php _e( '<abbr title="Coordinated Universal Time">UTC</abbr> time:' ); ?></th> 
     140                                                <td><?php echo date_i18n( $timezone_format, false, 'gmt' ); ?></td> 
     141                                        </tr> 
     142<?php 
     143        if ( $current_offset ) : 
     144?> 
     145                                        <tr> 
     146                                                <th><?php _e( 'Local time:' ); ?></th> 
     147                                                <td><?php echo date_i18n( $timezone_format ); ?></td> 
     148                                        </tr> 
     149<?php 
     150        endif; 
     151?> 
     152                                </tbody> 
     153                        </table> 
     154                </div> 
     155        </td> 
     156</tr> 
     157<?php 
     158else: 
     159        // looks like we can do nice timezone selection! 
     160        $current_offset = get_option('gmt_offset'); 
     161        $tzstring = get_option('timezone_string'); 
     162        if ( empty( $tzstring ) ) { 
     163                // set the Etc zone if no timezone string exists 
     164                if ($current_offset < 0) { 
     165                        $offnum = -ceil( $current_offset ); 
     166                } else { 
     167                        $offnum = -floor( $current_offset ); 
     168                } 
     169                $tzstring = 'Etc/GMT' . ( ( $offnum >= 0 ) ? '+' : '' ) . $offnum; 
     170        } 
     171?> 
     172<tr> 
     173        <th scope="row"><label for="timezone_string"><?php _e('Time Zone') ?></label></th> 
     174        <td> 
     175                <select id="timezone_string" name="timezone_string"> 
     176                        <?php echo wp_timezone_choice( $tzstring ); ?> 
     177                </select> 
     178                <input id="timezone_suggest" type="button" class="button" value="<?php _e('Suggest a time zone'); ?>" /> 
     179                <img id="timezone_suggest_working" src="images/wpspin_light.gif" width="16" height="16" /> 
     180                <span id="timezone_suggest_result"></span><br /> 
     181                <span class="description"><?php _e('WordPress can suggest a time zone for you based on your computers IP address, or you may manually select a city in the same time zone as you.'); ?></span><br /> 
     182                <div id="time-info"> 
     183                        <table> 
     184                                <caption><?php _e('Current time zone'); ?></caption> 
     185                                <tbody> 
     186                                        <tr> 
     187                                                <th><?php _e( '<abbr title="Coordinated Universal Time">UTC</abbr> time:' ); ?></th> 
     188                                                <td><?php echo date_i18n( $timezone_format, false, 'gmt' ); ?></td> 
     189                                        </tr> 
     190<?php 
     191        if ( !empty( $tzstring ) ) : 
     192?> 
     193                                        <tr> 
     194                                                <th><?php _e( 'Local time:' ); ?></th> 
     195                                                <td><?php echo date_i18n( $timezone_format ); ?></td> 
     196                                        </tr> 
     197                                        <tr> 
     198                                                <th><?php _e( '"Zoneinfo" zone:' ); ?></th> 
     199                                                <td><?php echo $tzstring; ?></td> 
     200                                        </tr> 
     201                                        <tr> 
     202                                                <th><?php _e( 'Currently observing:' ) ?></th> 
     203                                                <td><?php 
     204                $now = localtime( time(),true ); 
     205                if ( $now['tm_isdst'] ) { 
     206                        _e( 'daylight savings time' ); 
     207                } else { 
     208                        _e( 'standard time' ); 
     209                } 
     210?></td> 
     211                                        </tr> 
     212<?php 
     213                if ( function_exists( 'timezone_transitions_get' ) ) : 
     214                        $dateTimeZoneSelected = new DateTimeZone($tzstring); 
     215                        foreach (timezone_transitions_get($dateTimeZoneSelected) as $tr) { 
     216                                if ($tr['ts'] > time()) { 
     217                                    $found = true; 
     218                                        break; 
     219                                } 
     220                        } 
     221                        if ( isset($found) && $found === true ) : 
     222                                $term = $tr['isdst'] ? 
     223                                        __('Daylight savings begins:') : 
     224                                        __('Standard time resumes:'); 
     225                                $definition = date_i18n( $timezone_format, $tr['ts'] ); 
     226?> 
     227                                        <tr> 
     228                                                <th><?php echo $term; ?></th> 
     229                                                <td><?php echo $definition; ?></td> 
     230                                        </tr> 
     231<?php 
     232                        endif; 
     233                endif; 
     234        endif; 
     235?> 
     236                                </tbody> 
     237                        </table> 
     238                </div> 
     239        </td> 
     240</tr> 
     241<?php 
     242endif; 
     243?> 
     244</table> 
     245 
     246<table class="form-table"> 
     247<tr> 
     248        <th scope="row"><?php _e('Date Format') ?></th> 
     249        <td> 
     250                <fieldset><legend class="screen-reader-text"><span><?php _e('Date Format') ?></span></legend> 
     251<?php 
     252 
     253        $date_formats = apply_filters( 'date_formats', array( 
     254                __('F j, Y'), 
     255                'Y/m/d', 
     256                'm/d/Y', 
     257                'd/m/Y', 
     258        ) ); 
     259 
     260        $custom = TRUE; 
     261 
     262        foreach ( $date_formats as $format ) { 
     263                echo "\t<label title='" . esc_attr($format) . "'><input type='radio' name='date_format' value='" . esc_attr($format) . "'"; 
     264                if ( get_option('date_format') === $format ) { // checked() uses "==" rather than "===" 
     265                        echo " checked='checked'"; 
     266                        $custom = FALSE; 
     267                } 
     268                echo ' /> ' . date_i18n( $format ) . "</label><br />\n"; 
     269        } 
     270 
     271        echo '  <label><input type="radio" name="date_format" id="date_format_custom_radio" value="\c\u\s\t\o\m"'; 
     272        checked( $custom ); 
     273        echo '/> ' . __('Custom:') . ' </label><input type="text" name="date_format_custom" value="' . esc_attr( get_option('date_format') ) . '" class="small-text" /> ' . date_i18n( get_option('date_format') ) . "\n"; 
     274 
     275        echo "\t<p>" . __('<a href="http://codex.wordpress.org/Formatting_Date_and_Time">Documentation on date formatting</a>. Click &#8220;Save Changes&#8221; to update sample output.') . "</p>\n"; 
     276?> 
     277                </fieldset> 
     278        </td> 
     279</tr> 
     280<tr> 
     281        <th scope="row"><?php _e('Time Format') ?></th> 
     282        <td> 
     283                <fieldset><legend class="screen-reader-text"><span><?php _e('Time Format') ?></span></legend> 
     284<?php 
     285 
     286        $time_formats = apply_filters( 'time_formats', array( 
     287                __('g:i a'), 
     288                'g:i A', 
     289                'H:i', 
     290        ) ); 
     291 
     292        $custom = TRUE; 
     293 
     294        foreach ( $time_formats as $format ) { 
     295                echo "\t<label title='" . esc_attr( $format ) . "'><input type='radio' name='time_format' value='" . esc_attr($format) . "'"; 
     296                if ( get_option( 'time_format' ) === $format ) { // checked() uses "==" rather than "===" 
     297                        echo " checked='checked'"; 
     298                        $custom = FALSE; 
     299                } 
     300                echo ' /> ' . date_i18n( $format ) . "</label><br />\n"; 
     301        } 
     302 
     303        echo '  <label><input type="radio" name="time_format" id="time_format_custom_radio" value="\c\u\s\t\o\m"'; 
     304        checked( $custom ); 
     305        echo '/> ' . __('Custom:') . ' </label><input type="text" name="time_format_custom" value="' . esc_attr( get_option( 'time_format' ) ) . '" class="small-text" /> ' . date_i18n( get_option( 'time_format' ) ) . "\n"; 
     306?> 
     307                </fieldset> 
     308        </td> 
     309</tr> 
     310<tr> 
     311        <th scope="row"><label for="start_of_week"><?php _e('Week Starts On') ?></label></th> 
     312        <td> 
     313                <select name="start_of_week" id="start_of_week"> 
     314<?php 
     315for ($day_index = 0; $day_index <= 6; $day_index++) : 
     316        $selected = (get_option('start_of_week') == $day_index) ? 'selected="selected"' : ''; 
     317        echo "\n\t<option value='" . esc_attr($day_index) . "' $selected>" . $wp_locale->get_weekday($day_index) . '</option>'; 
     318endfor; 
     319?> 
     320                </select> 
     321        </td> 
     322</tr> 
     323<?php do_settings_fields('datetime', 'default'); ?> 
     324</table> 
     325 
     326<?php do_settings_sections('datetime'); ?> 
     327 
     328<p class="submit"> 
     329<input type="submit" name="Submit" class="button-primary" value="<?php esc_attr_e('Save Changes') ?>" /> 
     330</p> 
     331</form> 
     332 
     333</div> 
     334 
     335<?php include( './admin-footer.php' ); ?> 
     336 No newline at end of file