TimeInterval - Cesium Documentation

# TimeInterval

#### new TimeInterval(options)

  An interval defined by a start and a stop time; optionally including those times as part of the interval. Arbitrary data can optionally be associated with each instance for used with `TimeIntervalCollection`.

  Name | Type | Description
  --- | --- | ---

  `options`

  Object

  optional Object with the following properties:

  Name | Type | Default | Description
  --- | --- | --- | ---
  `start` | JulianDate | `new JulianDate()` | optional The start time of the interval.
  `stop` | JulianDate | `new JulianDate()` | optional The stop time of the interval.
  `isStartIncluded` | Boolean | `true` | optional `true` if `options.start` is included in the interval, `false` otherwise.
  `isStopIncluded` | Boolean | `true` | optional `true` if `options.stop` is included in the interval, `false` otherwise.
  `data` | Object |  | optional Arbitrary data associated with this interval.

  ##### Examples:

      // Create an instance that spans August 1st, 1980 and is associated
      // with a Cartesian position.
      var timeInterval = new Cesium.TimeInterval({
          start : Cesium.JulianDate.fromIso8601('1980-08-01T00:00:00Z'),
          stop : Cesium.JulianDate.fromIso8601('1980-08-02T00:00:00Z'),
          isStartTimeIncluded : true,
          iSStopTimeIncluded : false,
          data : Cesium.Cartesian3.fromDegrees(39.921037, -75.170082)
      });

      // Create two instances from ISO 8601 intervals with associated numeric data
      // then compute their intersection, summing the data they contain.
      var left = Cesium.TimeInterval.fromIso8601({
          iso8601 : '2000/2010',
          data : 2
      });

      var right = Cesium.TimeInterval.fromIso8601({
          iso8601 : '1995/2005',
          data : 3
      });

      //The result of the below intersection will be an interval equivalent to
      //var intersection = Cesium.TimeInterval.fromIso8601({
      //  iso8601 : '2000/2005',
      //  data : 5
      //});
      var intersection = new Cesium.TimeInterval();
      Cesium.TimeInterval.intersect(left, right, intersection, function(leftData, rightData) {
          return leftData + rightData;
      });

      // Check if an interval contains a specific time.
      var dateToCheck = Cesium.JulianDate.fromIso8601('1982-09-08T11:30:00Z');
      var containsDate = Cesium.TimeInterval.contains(timeInterval, dateToCheck);

  Source: Core/TimeInterval.js, line 71

### Members

#### staticconstantTimeInterval.EMPTY :TimeInterval

  An immutable empty interval.
  Source: Core/TimeInterval.js, line 396

#### data :Object

  Gets or sets the data associated with this interval.
  Source: Core/TimeInterval.js, line 89

#### readonlyisEmpty :Boolean

  Gets whether or not this interval is empty.
  Source: Core/TimeInterval.js, line 113

#### isStartIncluded :Boolean

  Gets or sets whether or not the start time is included in this interval.
  Default Value: `true`
  Source: Core/TimeInterval.js, line 96

#### isStopIncluded :Boolean

  Gets or sets whether or not the stop time is included in this interval.
  Default Value: `true`
  Source: Core/TimeInterval.js, line 103

#### start :JulianDate

  Gets or sets the start time of this interval.
  Source: Core/TimeInterval.js, line 77

#### stop :JulianDate

  Gets or sets the stop time of this interval.
  Source: Core/TimeInterval.js, line 83

### Methods

#### staticTimeInterval.clone(timeInterval, result) → TimeInterval

  Duplicates the provided instance.

  Name | Type | Description
  --- | --- | ---
  `timeInterval` | TimeInterval | optional The instance to clone.
  `result` | TimeInterval | optional An existing instance to use for the result.

  ##### Returns:

  The modified result parameter or a new instance if none was provided.
  Source: Core/TimeInterval.js, line 198

#### staticTimeInterval.contains(timeInterval, julianDate) → Boolean

  Checks if the specified date is inside the provided interval.

  Name | Type | Description
  --- | --- | ---
  `timeInterval` | TimeInterval | The interval.
  `julianDate` | JulianDate | The date to check.

  ##### Returns:

  `true` if the interval contains the specified date, `false` otherwise.
  Source: Core/TimeInterval.js, line 318

#### staticTimeInterval.equals(left, right, dataComparer) → Boolean

  Compares two instances and returns `true` if they are equal, `false` otherwise.

  Name | Type | Description
  --- | --- | ---
  `left` | TimeInterval | optional The first instance.
  `right` | TimeInterval | optional The second instance.
  `dataComparer` | TimeInterval~DataComparer | optional A function which compares the data of the two intervals. If omitted, reference equality is used.

  ##### Returns:

  `true` if the dates are equal; otherwise, `false`.
  Source: Core/TimeInterval.js, line 221

#### staticTimeInterval.equalsEpsilon(left, right, epsilon, dataComparer) → Boolean

  Compares two instances and returns `true` if they are within `epsilon` seconds of each other. That is, in order for the dates to be considered equal (and for this function to return `true`), the absolute value of the difference between them, in seconds, must be less than `epsilon`.

  Name | Type | Description
  --- | --- | ---
  `left` | TimeInterval | optional The first instance.
  `right` | TimeInterval | optional The second instance.
  `epsilon` | Number | The maximum number of seconds that should separate the two instances.
  `dataComparer` | TimeInterval~DataComparer | optional A function which compares the data of the two intervals. If omitted, reference equality is used.

  ##### Returns:

  `true` if the two dates are within `epsilon` seconds of each other; otherwise `false`.
  Source: Core/TimeInterval.js, line 244

#### staticTimeInterval.fromIso8601(options, result) → TimeInterval

  Creates a new instance from an ISO 8601 interval.

  Name | Type | Description
  --- | --- | ---

  `options`

  Object

  Object with the following properties:

  Name | Type | Default | Description
  --- | --- | --- | ---
  `iso8601` | String |  | An ISO 8601 interval.
  `isStartIncluded` | Boolean | `true` | optional `true` if `options.start` is included in the interval, `false` otherwise.
  `isStopIncluded` | Boolean | `true` | optional `true` if `options.stop` is included in the interval, `false` otherwise.
  `data` | Object |  | optional Arbitrary data associated with this interval.

  `result` | TimeInterval | optional An existing instance to use for the result.

  ##### Returns:

  The modified result parameter or a new instance if none was provided.
  Source: Core/TimeInterval.js, line 140

#### staticTimeInterval.intersect(left, right, result, mergeCallback) → TimeInterval

  Computes the intersection of two intervals, optionally merging their data.

  Name | Type | Description
  --- | --- | ---
  `left` | TimeInterval | The first interval.
  `right` | TimeInterval | optional The second interval.
  `result` | TimeInterval | An existing instance to use for the result.
  `mergeCallback` | TimeInterval~MergeCallback | optional A function which merges the data of the two intervals. If omitted, the data from the left interval will be used.

  ##### Returns:

  The modified result parameter.
  Source: Core/TimeInterval.js, line 270

#### staticTimeInterval.toIso8601(timeInterval, precision) → String

  Creates an ISO8601 representation of the provided interval.

  Name | Type | Description
  --- | --- | ---
  `timeInterval` | TimeInterval | The interval to be converted.
  `precision` | Number | optional The number of fractional digits used to represent the seconds component. By default, the most precise representation is used.

  ##### Returns:

  The ISO8601 representation of the provided interval.
  Source: Core/TimeInterval.js, line 181

#### clone(result) → TimeInterval

  Duplicates this instance.

  Name | Type | Description
  --- | --- | ---
  `result` | TimeInterval | optional An existing instance to use for the result.

  ##### Returns:

  The modified result parameter or a new instance if none was provided.
  Source: Core/TimeInterval.js, line 351

#### equals(right, dataComparer) → Boolean

  Compares this instance against the provided instance componentwise and returns `true` if they are equal, `false` otherwise.

  Name | Type | Description
  --- | --- | ---
  `right` | TimeInterval | optional The right hand side interval.
  `dataComparer` | TimeInterval~DataComparer | optional A function which compares the data of the two intervals. If omitted, reference equality is used.

  ##### Returns:

  `true` if they are equal, `false` otherwise.
  Source: Core/TimeInterval.js, line 363

#### equalsEpsilon(right, epsilon, dataComparer) → Boolean

  Compares this instance against the provided instance componentwise and returns `true` if they are within the provided epsilon, `false` otherwise.

  Name | Type | Description
  --- | --- | ---
  `right` | TimeInterval | optional The right hand side interval.
  `epsilon` | Number | The epsilon to use for equality testing.
  `dataComparer` | TimeInterval~DataComparer | optional A function which compares the data of the two intervals. If omitted, reference equality is used.

  ##### Returns:

  `true` if they are within the provided epsilon, `false` otherwise.
  Source: Core/TimeInterval.js, line 377

#### toString() → String

  Creates a string representing this TimeInterval in ISO8601 format.

  ##### Returns:

  A string representing this TimeInterval in ISO8601 format.
  Source: Core/TimeInterval.js, line 386

### Type Definitions

#### DataComparer(leftData, rightData) → Boolean

  Function interface for comparing interval data.

  Name | Type | Description
  --- | --- | ---
  `leftData` | Object | The first data instance.
  `rightData` | Object | The second data instance.

  ##### Returns:

  `true` if the provided instances are equal, `false` otherwise.
  Source: Core/TimeInterval.js, line 412

#### MergeCallback(leftData, rightData) → Object

  Function interface for merging interval data.

  Name | Type | Description
  --- | --- | ---
  `leftData` | Object | The first data instance.
  `rightData` | Object | The second data instance.

  ##### Returns:

  The result of merging the two data instances.
  Source: Core/TimeInterval.js, line 403