--- announcements.module.orig 2008-10-06 00:24:25.000000000 -0700
+++ announcements.module 2008-10-06 00:36:02.000000000 -0700
@@ -382,7 +384,7 @@
$args = array(-1);
}
else {
- $args[] = date("U");
+ $args[] = gmdate("U");
}
$query .= ' ORDER BY '. variable_get('announcements_page_order', 'n.sticky DESC, n.changed DESC');
@@ -846,15 +850,26 @@
return '
'. check_markup($announcement->abstract, $announcement->format) .'
';
}
+function _announcements_get_timezone() {
+ global $user;
+ if (variable_get('configurable_timezones', 1) && $user->uid && strlen($user->timezone)) {
+ // user has his/her own timezone, use that
+ return $user->timezone;
+ }
+ return variable_get('date_default_timezone', 0);
+}
+
function _announcements_drupaldate2unixtime($drupal_date) {
// Compute the time in UTC (GMT).
- return gmmktime(0, 0, 0, (int)$drupal_date["month"], (int)$drupal_date["day"], (int)$drupal_date["year"]);
+ $tz_seconds = _announcements_get_timezone();
+ return gmmktime(0, 0, 0, (int)$drupal_date["month"], (int)$drupal_date["day"], (int)$drupal_date["year"]) - $tz_seconds;
}
function _announcements_unixtime2drupaldate($unixtime) {
- return array('day' => date('j', $unixtime),
- 'month' => date('n', $unixtime),
- 'year' => date('Y', $unixtime));
+ $unixtime -= _announcements_get_timezone;
+ return array('day' => gmdate('j', $unixtime),
+ 'month' => gmdate('n', $unixtime),
+ 'year' => gmdate('Y', $unixtime));
}
/**