You are here

function views_timelinejs_date_iso_source_date_field_conversion in Views TimelineJS integration 7

Converts ISO date field formats, forces TimelineJS to ignore browser TZ.

Converts different expected date formats to one global date format to be used in TimelineJS. Uses Drupal's TZ, not field TZ. Adds Z to ISODate to force TimelineJS to ignore browser timezone.

Return value

string Formatted date.

1 string reference to 'views_timelinejs_date_iso_source_date_field_conversion'
date_iso_field.inc in plugins/date_sources/date_iso_field.inc

File

plugins/date_sources/date_iso_field.inc, line 24

Code

function views_timelinejs_date_iso_source_date_field_conversion($date, $output_format, $options = array()) {
  $granularity = isset($options['field']['granularity']) ? $options['field']['granularity'] : '';
  $input_format = $options['field']['date_format'];
  $tz_handling = $options['field']['tz_handling'];
  $timezone = date_get_timezone($tz_handling);
  $db_timezone = date_get_timezone_db($tz_handling);
  switch ($output_format) {
    case 'csv':
      $ret['value'] = views_timelinejs_convert_to_csv($date['value'], $input_format, $timezone, $db_timezone, $granularity);
      if (isset($date['value2'])) {
        $ret['value2'] = views_timelinejs_convert_to_csv($date['value2'], $input_format, $timezone, $db_timezone, $granularity);
      }
      break;
    case 'timestamp':
      $ret['value'] = views_timelinejs_convert_to_timestamp($date['value'], $input_format, $timezone, $db_timezone, $granularity);
      if (isset($date['value2'])) {
        $ret['value2'] = views_timelinejs_convert_to_timestamp($date['value2'], $input_format, $timezone, $db_timezone, $granularity);
      }
      break;
  }

  // If times are the same, don't duplicate.
  if (isset($ret['value2']) && $ret['value'] == $ret['value2']) {
    unset($ret['value2']);
  }
  return $ret;
}