Revision: 19018
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at October 14, 2009 16:53 by terrencewood
Initial Code
/**
* Implements hook_views_query_alter
* - If the db doesn't have timezone support transform exposed filter date inputs from the sites default timezone to UTC.
* @TODO - can the conversion to UTC happen somewhere in the $view->handler, hook_form_alter, or date api
*/
function mymodule_views_query_alter(&$view, &$query) {
if(isset($query->where['date']['clauses']) && !variable_get('date_db_tz_support', 0)) {
$tz = variable_get('date_default_timezone_name', 'Pacific/Auckland');
date_default_timezone_set('UTC');
$dates = &$query->where['date']['clauses'];
foreach($dates as &$date) {
$date = preg_replace_callback(
'(\d{4}-\d{2}-\d{2})',
create_function('$date','return strftime("%Y-%m-%d %H:%M:%S", strtotime($date[0]." '.$tz.'"));'),
$date
);
}
date_default_timezone_set($tz);
}
}
Initial URL
Initial Description
Initial Title
Adjust date field inputs to UTC
Initial Tags
date, drupal
Initial Language
PHP