Skip to content
Timer

useTimestamp

Reactive Unix timestamp (ms) that auto-updates on every animation frame or interval

Returns a ReadonlyObservable<number> containing the current Unix timestamp in milliseconds, updated continuously via requestAnimationFrame (default) or a fixed interval.

Timestamp

Updates every frame via requestAnimationFrame.

Timestamp
1776588750404
import {
import useTimestamp
useTimestamp
} from "@usels/web";
function
function Component(): JSX.Element
Component
() {
const
const ts: any
ts
=
import useTimestamp
useTimestamp
();
return <
JSX.IntrinsicElements.div: DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>
div
>{
const ts: any
ts
.
any
get
()}</
JSX.IntrinsicElements.div: DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>
div
>;
// ts.get() → current Date.now(), updated every frame
}
import { observable, useTimestamp } from "@usels/web";
function Component() {
const offset$ = observable(5000);
const ts = useTimestamp({ offset: offset$ });
// ts.get() → Date.now() + 5000 — offset is reactive, updates each tick
}
import { useTimestamp } from "@usels/web";
function Component() {
const ts = useTimestamp({
callback: (timestamp) => {
console.log("tick:", timestamp);
},
});
}
import { useTimestamp } from "@usels/web";
function Component() {
const { timestamp$, isActive$, pause, resume } = useTimestamp({ controls: true });
}

offset is read on every tick inside the update loop, so changing it (via Observable) takes effect on the next frame without restarting the scheduler.

ParameterTypeDescription
optionsTimestampOptions & { controls: true; }-
OptionTypeDefaultDescription
controlsboolean-Expose pause/resume controls — mount-time-only
offsetnumber0Offset (ms) added to the timestamp on every tick — reactive
intervalnumber | "requestAnimationFrame"'requestAnimationFrame'Update interval — determines scheduler type. - ‘requestAnimationFrame’: rAF-based (default, smoother) - number: ms-based setInterval (battery friendly)
callback((timestamp: number) => void)-Callback invoked on every update

Pausable & { timestamp$: ObservablePrimitive<number>; }

NameTypeDescription
isActive$ReadonlyObservable<boolean>-
pauseFn-
resumeFn-
timestamp$ObservablePrimitive<number>-

View on GitHub