A browser extension to fake the current date, time and time zone in JavaScript Date or Intl.DateTimeFormat objects, to help you debug time-dependent frontend applications without having to change the system time.
time-travel-2.0.0.mp4
- Open the tab you want to change the time in.
- Click the Extensions icon in the toolbar, then click Time Travel.
- Choose a date from the calendar and edit the time if necessary, or enter a date and time directly (see examples below).
- Confirm with
Enteror by clicking the "Change Date" button. In Chrome, when first activating the extension on a tab, the page needs to be reloaded once to apply the changes. - Any JavaScript
DateorIntl.DateTimeFormatin the current tab now returns the fake date/time you set. Other tabs and origins are not affected.
To restore the system time, click the extension icon and switch off the "Enable Fake Date" toggle.
When the fake date is enabled, the clock runs forward from the configured time. You can stop the clock by switching on the "Stop Clock" toggle. The fake date will be reset to the last value you set.
To change the time zone, open "Options", enable "Change Time Zone" and select a time zone from the dropdown. When enabled, both Date objects and Intl.DateTimeFormat will use this time zone instead of the system time zone. The fake date in the Time Travel UI is still shown and configured in the system time zone, but a preview of the time in the configured time zone plus the Daylight Saving Time (DST) offset is shown if applicable.
2025-04-27 12:40- Local time2025-03-30 00:59:55- Assuming your system time zone is Europe/London (GMT), 5 seconds before a one-hour jump to 2 a.m. (summer time)2025-04-27T12:40Z- Set local equivalent for given UTC time2025-04-27T12:40+1130- Set local equivalent for time with +11:30 time zone offset. Note that actual time zone is not changed2025-03-25T12:40:00.120- Local time with milliseconds1731493140025- UNIX timestamp
- Fakes date and time for all methods of
DateandIntl.DateTimeFormatobjects. - Time zone can be changed, with full support for DST transitions.
- Time can be stopped and resumed.
- Option to automatically reload page after changing date.
- Only affects current tab after clicking the extension icon.
- Minimal permissions (in Chrome)
- Only JavaScript is affected by the extension.
- Some functionality or animations may behave strangely if the clock is stopped.
- The extension does not work in iframes with the
sandboxattribute.
This extension is compatible with Chromium-based browsers (version 109+) and Firefox (version 128+).
For Chrome, Opera, Edge, and other Chromium-based browsers, install the extension from the Chrome Web Store: https://chromewebstore.google.com/detail/time-travel/jfdbpgcmmenmelcghpbbkldkcfiejcjg
For Firefox (Desktop or Android), install it from: https://addons.mozilla.org/en-US/firefox/addon/timetravel/
To build and use a local version:
- Clone this repository and run
pnpm install. - Run
pnpm dev(orpnpm buildfor a production version).
- Open chrome://extensions and enable 'Developer Mode'.
- Click 'Load unpacked' and select the
dist/chromedirectory
Start a new Firefox instance with the extension loaded using (cd dist/firefox; pnpm exec web-ext run), or install manually via:
- Open about:debugging
- Navigate to 'This Firefox'
- Click 'Temporary Extensions' > 'Load Temporary Add-on...' and select
dist/firefox/manifest.json.
Contributions are welcome! If you have ideas, bug reports, or want to help improve Time Travel, please open an issue or submit a pull request on GitHub.