Make WordPress Core

Changeset 942


Ignore:
Timestamp:
02/26/2004 04:13:05 PM (23 years ago)
Author:
michelvaldrighi
Message:

rewrote upgrade for GMT, now checks for the option gmt_offset before changing anything

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/upgrade-functions.php

    r920 r942  
    713713        }
    714714
    715         // Convert all datetime fields' values to GMT, and update $time_difference
    716         $time_difference = get_settings('time_difference');
    717 
    718         $server_time = gmmktime(date('H'), date('i'), date('s'), date('m'), date('d'), date('Y'));
    719         $w = date('Y-m-d H:i:s', time() + $time_difference*3600);
    720         $weblogger_time = gmmktime(substr($w,11,13), substr($w,14,16), substr($w,17,19), substr($w,5,7), substr($w,8,10), substr($w,0,4));
    721         $gmt_time = time();
    722 
    723         $diff_gmt_server = ($gmt_time - $server_time) / 3600;
    724         $diff_weblogger_server = ($weblogger_time - $server_time) / 3600;
    725         $diff_gmt_weblogger = $diff_gmt_server - $diff_weblogger_server;
    726 
    727         if (strval(current_time('timestamp') - $time_difference*3600) != gmdate('Y-m-d H:i:s', time())) {
    728 
    729                 $new_time_difference = -$diff_gmt_weblogger;
    730 
    731                 $add_hours = intval($diff_gmt_weblogger);
    732                 $add_minutes = intval(60 * ($diff_gmt_weblogger - $add_hours));
    733 
    734                 #the queries are simple
    735                 $wpdb->query("UPDATE $tableposts SET post_date = DATE_ADD(post_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
    736                 $wpdb->query("UPDATE $tableposts SET post_modified = DATE_ADD(post_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE) WHERE post_modified != '0000-00-00 00:00:00'");
    737                 $wpdb->query("UPDATE $tablecomments SET comment_date = DATE_ADD(comment_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
    738                 $wpdb->query("UPDATE $tableusers SET dateYMDhour = DATE_ADD(dateYMDhour, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
    739 
    740                 #and then we update time_difference to use the new value
    741                 $wpdb->query("UPDATE $tableoptions SET option_value = '$new_time_difference' WHERE option_name = 'time_difference'");
    742 
    743         } else {
    744 
    745                 #if the times are already stored as GMT, we shouldn't have anything to do
    746                 #except set time_difference to zero
    747                 $wpdb->query("UPDATE $tableoptions SET option_value = '0' WHERE option_name = 'time_difference'");
    748 
    749         }
    750 
     715        // Convert all datetime fields' values to GMT, add a gmt_offset option
     716        if (!get_settings('gmt_offset')) {
     717                // echo '1';
     718                $all_options = get_alloptions();
     719                $time_difference = $all_options->time_difference;
     720
     721                $server_time = time()+date('Z');
     722                $weblogger_time = $server_time + $time_difference*3600;
     723                $gmt_time = time();
     724
     725                $diff_gmt_server = ($gmt_time - $server_time) / 3600;
     726                $diff_weblogger_server = ($weblogger_time - $server_time) / 3600;
     727                $diff_gmt_weblogger = $diff_gmt_server - $diff_weblogger_server;
     728
     729                if ($diff_gmt_weblogger != 0) {
     730                        //echo '<br>2: ';
     731                        $gmt_offset = -$diff_gmt_weblogger;
     732
     733                        $add_hours = intval($diff_gmt_weblogger);
     734                        $add_minutes = intval(60 * ($diff_gmt_weblogger - $add_hours));
     735                        // echo $add_hours.':'.$add_minutes;
     736                       
     737                        // Add or substract time to all dates, to get GMT dates
     738                        $wpdb->query("UPDATE $tableposts SET post_date = DATE_ADD(post_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
     739                        $wpdb->query("UPDATE $tableposts SET post_modified = DATE_ADD(post_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE) WHERE post_modified != '0000-00-00 00:00:00'");
     740                        $wpdb->query("UPDATE $tablecomments SET comment_date = DATE_ADD(comment_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
     741                        $wpdb->query("UPDATE $tableusers SET dateYMDhour = DATE_ADD(dateYMDhour, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
     742
     743
     744                } else {
     745                        //echo '3';
     746                        $gmt_offset = 0;
     747                }
     748
     749                // Add gmt_field option, with value $gmt_offset
     750                if(!$wpdb->get_var("SELECT * FROM $tableoptions WHERE option_name = 'gmt_offset'")) {
     751                        // echo "<br>4: $gmt_offset";
     752                        $wpdb->query("INSERT INTO $tableoptions (option_id, option_name, option_type, option_value, option_description, option_admin_level) VALUES (94, 'gmt_offset', 8, $gmt_offset, 'The difference in hours between GMT and your timezone', 8)");
     753                }
     754
     755        }
    751756}
    752757
Note: See TracChangeset for help on using the changeset viewer.