Zebras. (I just wanted to use my "z" illumination.)
In general, it's not necessary to add a timezone to both start and end dates. But if you modify the date format, that's exactly what will happen.
So how do we add the site timezone just to the end of the DateTimeRange?
Here's how I did this:
function mytheme_preprocess_field(&$variables, $hook) { if ($variables['field_name'] == 'myfield') { if (isset($variables['items'][0]['content']['end_date']['#plain_text'])) { $dateTime = new DateTime(); $dateTime->setTimeZone(new DateTimeZone(drupal_get_user_timezone())); $variables['items'][0]['content']['end_date']['#plain_text'] .= ' ' . $dateTime->format('T'); } } }
And it looks something like this: 8/2/17 5:15 PM - 8/2/17 10:15 PM EDT