[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) › formatMillisAsDuration

```ts
function formatMillisAsDuration(
  millis: number &
    Brand<"NonNaN"> &
    Brand<"Finite"> &
    Brand<"Int"> &
    Brand<"NonNegative"> &
    Brand<"LessThan281474976710655"> &
    Brand<"Millis">,
): string;
```

Defined in: [packages/common/src/Time.ts:631](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Time.ts#L631)

Formats [Millis](https://evolu.dev/docs/api-reference/common/Time/variables/Millis) as a human-readable duration string.

- Under 1 minute: `1.234s`
- Under 1 hour: `1m30.000s`
- Under 1 day: `1h30m45.000s`
- Under 1 week: `1d2h30m45.000s`
- Under 1 year: `1w2d3h30m45.000s`
- 1 year or more: `1y2w3d4h30m45.000s`

Weeks are 7 days and years are 365 days.

### Example

```ts

assertEqual(formatMillisAsDuration(Millis.orThrow(1234)), "1.234s");
assertEqual(formatMillisAsDuration(Millis.orThrow(90000)), "1m30.000s");
assertEqual(formatMillisAsDuration(Millis.orThrow(90061000)), "1d1h1m1.000s");
```