Post dates an hour off, a scheduled post that went out at 3 a.m., bookings that land an hour early, order emails stamped in the middle of the night. Almost always it is one setting, and the giveaway is how far off it is: exactly one hour usually means daylight saving, several whole hours usually means the site is on UTC. Below is a rebuilt example (not a real client), the one-minute check, and the fix for each cause.
| What you see | Why it happens | The fix |
|---|---|---|
| Times are exactly one hour off, and they were fine a few months ago (or will be in a few months) | The timezone is set to a fixed offset such as UTC-5. It was right when someone picked it; daylight saving started or ended and the offset did not move | In Settings > General > Timezone, choose the city you are in (or the nearest one in the list that shares your time), then Save Changes. WordPress then says whether daylight saving is in effect and when it next changes, and moves the clock itself |
| Times are several whole hours off (4, 5, 7, 8 ...) | The site is on UTC+0, the starting value on many installs, so every time is shown in London winter time | Choose your city as above. Posts already published keep their real moment; only the displayed time changes |
| Posts and the dashboard are right, but bookings, events or form entries are off | That plugin has its own timezone setting, or stores times in UTC and shows them without converting | Set the plugin to "use the site timezone" if it offers it, otherwise pick the same city in its settings. Check its calendar sync (Google Calendar, Outlook) too: each calendar has a timezone of its own |
| Some pages show the right time and others are off; Site Health warns "PHP default timezone is invalid" | A plugin or theme calls date_default_timezone_set(), which WordPress expects to stay on UTC. Code that relies on it then shifts times twice or not at all | Turn plugins off one at a time on a staging copy until the warning goes away, then report it to that plugin's author or replace the plugin. Do not "fix" it by changing the site timezone to cancel out the shift |
| A scheduled post went out at the wrong hour, or says Missed schedule | The wrong hour is the timezone (rows above). "Missed schedule" is a different cause: WordPress's scheduler only runs when someone visits | Fix the timezone first. For "Missed schedule", see scheduled posts not publishing |
| The time is right but shown the wrong way: 24-hour instead of a.m./p.m., or the day before the month | The date and time formats are separate settings from the timezone | In Settings > General, pick a Date Format and Time Format (g:i a gives 3:30 pm, H:i gives 15:30). Some themes hard-code their own format in the post template; that is a theme edit |
| You changed the setting and visitors still see the old time | A page cache (plugin, host or Cloudflare) is still serving copies made before the change | Clear every cache once. See changes not showing |
| Even "Universal time is ..." in Settings > General is wrong | The server's own clock has drifted. Rare, and it can also break secure connections and scheduled jobs | Ask the host to sync the server clock (NTP). This is theirs to fix, not a WordPress setting |
The timezone itself takes a minute. Tracking down a booking plugin and its calendar sync that disagree, or a plugin that shifts the clock behind WordPress's back, is where most owners would rather have someone do it. If that is you, the box below is for that. Related: scheduled posts not publishing, an old year on the site and changes not showing.