[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Time](https://evolu.dev/docs/api-reference/common/Time) › TestTime

Defined in: [packages/common/src/Time.ts:191](https://github.com/evoluhq/evolu/blob/a18269a1b822c670b507c6a9b73b23eed32551fe/packages/common/src/Time.ts#L191)

Test [Time](https://evolu.dev/docs/api-reference/common/Time/interfaces/Time) with controllable timers.

Call `advance(ms)` to move time forward and trigger any pending timeouts.

## Extends

- [`Time`](https://evolu.dev/docs/api-reference/common/Time/interfaces/Time)

## Properties

<a id="advance"></a>

### advance

```ts
readonly advance: (duration: Duration) => void;
```

Defined in: [packages/common/src/Time.ts:198](https://github.com/evoluhq/evolu/blob/a18269a1b822c670b507c6a9b73b23eed32551fe/packages/common/src/Time.ts#L198)

Advances time by the specified duration, triggering pending timeouts.

Timeout callback errors propagate and leave time at the callback's
deadline. Throws if called while another advance is in progress.

### clearTimeout

```ts
readonly clearTimeout: (id: TimeoutId) => void;
```

Defined in: [packages/common/src/Time.ts:63](https://github.com/evoluhq/evolu/blob/a18269a1b822c670b507c6a9b73b23eed32551fe/packages/common/src/Time.ts#L63)

Cancels a timeout scheduled with this instance's [Time.setTimeout](https://evolu.dev/docs/api-reference/common/Time/interfaces/Time#settimeout).

Throws if the timeout was scheduled by another [Time](https://evolu.dev/docs/api-reference/common/Time/interfaces/Time) instance.

#### Inherited from

[`Time`](https://evolu.dev/docs/api-reference/common/Time/interfaces/Time).[`clearTimeout`](https://evolu.dev/docs/api-reference/common/Time/interfaces/Time#cleartimeout)

---

<a id="now"></a>

### now

```ts
readonly now: {
  (): number & Brand<"NonNaN"> & Brand<"Finite"> & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">;
  (type: "DateIso"): string & Brand<"DateIso">;
};
```

Defined in: [packages/common/src/Time.ts:30](https://github.com/evoluhq/evolu/blob/a18269a1b822c670b507c6a9b73b23eed32551fe/packages/common/src/Time.ts#L30)

#### Call Signature

```ts
(): number & Brand<"NonNaN"> & Brand<"Finite"> & Brand<"Int"> & Brand<"NonNegative"> & Brand<"LessThan281474976710655"> & Brand<"Millis">;
```

Returns current time as Unix epoch milliseconds.

##### Returns

`number` & [`Brand`](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand)\<`"NonNaN"`\> & [`Brand`](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand)\<`"Finite"`\> & [`Brand`](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand)\<`"Int"`\> & [`Brand`](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand)\<`"NonNegative"`\> & [`Brand`](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand)\<`"LessThan281474976710655"`\> & [`Brand`](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand)\<`"Millis"`\>

#### Call Signature

```ts
(type: "DateIso"): string & Brand<"DateIso">;
```

Returns current time as an ISO 8601 UTC string.

##### Parameters

| Parameter | Type        |
| --------- | ----------- |
| `type`    | `"DateIso"` |

##### Returns

`string` & [`Brand`](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand)\<`"DateIso"`\>

#### Inherited from

[`Time`](https://evolu.dev/docs/api-reference/common/Time/interfaces/Time).[`now`](https://evolu.dev/docs/api-reference/common/Time/interfaces/Time#now)

---

<a id="performance"></a>

### performance

```ts
readonly performance: {
  now: () => PerformanceTime;
  timeOrigin: PerformanceTimeOrigin;
};
```

Defined in: [packages/common/src/Time.ts:38](https://github.com/evoluhq/evolu/blob/a18269a1b822c670b507c6a9b73b23eed32551fe/packages/common/src/Time.ts#L38)

| Name         | Type                                                                                              | Description                                                                                                                                                                                                                                                                                                                                                                                                                                | Defined in                                                                                                                                       |
| ------------ | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `now()`      | () => [`PerformanceTime`](https://evolu.dev/docs/api-reference/common/Time/type-aliases/PerformanceTime)       | Returns a high-resolution timestamp in milliseconds relative to `performance.timeOrigin`. Unlike [Time.now](https://evolu.dev/docs/api-reference/common/Time/interfaces/Time#now), this value is not Unix epoch time and is unaffected by system clock adjustments. Like Node.js `process.hrtime.bigint()`, it is suitable for measuring elapsed time, but it uses the Web Performance API's number representation rather than nanoseconds as a bigint. | [packages/common/src/Time.ts:52](https://github.com/evoluhq/evolu/blob/a18269a1b822c670b507c6a9b73b23eed32551fe/packages/common/src/Time.ts#L52) |
| `timeOrigin` | [`PerformanceTimeOrigin`](https://evolu.dev/docs/api-reference/common/Time/type-aliases/PerformanceTimeOrigin) | Unix epoch timestamp used as the origin for `performance.now()`.                                                                                                                                                                                                                                                                                                                                                                           | [packages/common/src/Time.ts:40](https://github.com/evoluhq/evolu/blob/a18269a1b822c670b507c6a9b73b23eed32551fe/packages/common/src/Time.ts#L40) |

#### Inherited from

[`Time`](https://evolu.dev/docs/api-reference/common/Time/interfaces/Time).[`performance`](https://evolu.dev/docs/api-reference/common/Time/interfaces/Time#performance)

---

<a id="settimeout"></a>

### setTimeout

```ts
readonly setTimeout: (fn: () => void, delay: PositiveDuration) => TimeoutId;
```

Defined in: [packages/common/src/Time.ts:56](https://github.com/evoluhq/evolu/blob/a18269a1b822c670b507c6a9b73b23eed32551fe/packages/common/src/Time.ts#L56)

Schedules a callback after the specified positive delay.

#### Inherited from

[`Time`](https://evolu.dev/docs/api-reference/common/Time/interfaces/Time).[`setTimeout`](https://evolu.dev/docs/api-reference/common/Time/interfaces/Time#settimeout)