# How to Mock Dates in Playwright Tests

If you'd like to mock or emulate a specific date or time in your Playwright
tests, you can use the following code:

```javascript
test.beforeEach(async ({ page }) => {
  const fakeNow = new Date('June 21 2026 13:00:00').valueOf();

  await page.addInitScript(`{
    Date = class extends Date {
      constructor(...args) {
        if (args.length === 0) {
          super(${fakeNow});
        } else {
          super(...args);
        }
      }
    }

    const __DateNowOffset = ${fakeNow} - Date.now();
    const __DateNow = Date.now;
    Date.now = () => __DateNow() + __DateNowOffset;
  }`);
});
```

This snippet overrides the JavaScript `Date` object and Date.now() function to
simulate the current time as June 21, 2026, at 13:00:00. It ensures that any
usage of `Date` or `Date.now()` within the tested page reflects this specific
time, facilitating consistent testing of time-dependent features by mocking the
system time before each test case runs.

Thanks for reading, and happy coding!

[summary]
## 🔭 Want to automate and scale your Playwright end-to-end tests?
Head over to [Better Stack](https://betterstack.com/website-monitoring) and start monitoring in 5 minutes.
[/summary]

[ad-uptime]