query($sql); // Save the current default timezone so that we can restore it at the end $old_tz = mrbs_default_timezone_get(); $mods = array(); while (false !== ($row = $res->next_row_keyed())) { // We need to make sure that we have the correct timezone set when we work out // the day of the month that this series repeats on if (!empty($row['timezone'])) { mrbs_default_timezone_set($row['timezone']); } $mods[$row['id']] = date_byday($row['start_time']); } foreach ($mods as $id => $month_relative) { $sql = "UPDATE " . _tbl('repeat') . " SET month_relative=?, rep_type=" . RepeatRule::MONTHLY . " WHERE id=?"; $upgrade_handle->command($sql, array($month_relative, $id)); } // Restore the original timezone mrbs_default_timezone_set($old_tz);